Hallo zusammen,
ich habe folgendes Problem:
Ich lasse mir durch eine extra Tabelle (HIBERNATE_KEY_TABLE) die Id`s für den primären Schlüssel einer Tabelle erzeugen.
Dies klappt soweit auch ganz gut, d.h. das Abspeichern eines Datensatzes ist in Ordnung. Nur leider komme ich an die ID des gerade abgespeicherten Datensatzes nicht ran. Nach einem persist() bekomme ich bei getId() eine "0" anstatt der richtig vergegebenen Id zurück.
Was mache ich noch falsch?
Vielen Dank im Voraus,
Markus
ich habe folgendes Problem:
Ich lasse mir durch eine extra Tabelle (HIBERNATE_KEY_TABLE) die Id`s für den primären Schlüssel einer Tabelle erzeugen.
HTML:
/**
* gets Id (primary key)
*
* @return id Id (primary key)
*/
@Id
@TableGenerator(name = "TABLENAME_GENERATOR", table = "HIBERNATE_KEY_TABLE",pkColumnName = "TABLE_NAME", valueColumnName = "NEXT_VALUE", pkColumnValue = "TABLENAME",allocationSize = 1)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "TABLENAME_GENERATOR")
@Column(name = "ID", unique = true, nullable = false, insertable = true, updatable = true, precision = 10)
public long getId() {
return this.id;
}
/**
* sets Id (primary key)
*
* @param id Id (primary key)
*/
public void setId(long id) {
this.id = id;
}
Dies klappt soweit auch ganz gut, d.h. das Abspeichern eines Datensatzes ist in Ordnung. Nur leider komme ich an die ID des gerade abgespeicherten Datensatzes nicht ran. Nach einem persist() bekomme ich bei getId() eine "0" anstatt der richtig vergegebenen Id zurück.
HTML:
/* persist the object */
manager.persist(brain);
long id = brain.getId();
Was mache ich noch falsch?
Vielen Dank im Voraus,
Markus
Zuletzt bearbeitet: