Abgesehen von den von der Datenbank generierten Werten muss Hibernate offensichtlich nicht die aktualisierte Instanz zurückgeben, da das Objekt an Session.saveOrUpdate()
übergeben wurde ist die aktualisierte Instanz. Von der Datenbank generierte Werte (Sequenz, Auslöser, Standardwerte usw.) werden nach festgelegt Session.saveOrUpdate
wenn sie entsprechend annotiert (oder in einer XML-Mapping-Datei definiert) sind.
Für Bezeichnerwerte
Verwenden Sie den JPA @javax.persistence.GeneratedValue
Annotation in Verbindung mit der JPA @javax.persistence.Id
Anmerkung. Für einfache Eigenschaften Verwenden Sie den nativen Hibernate @org.hibernate.annotations.Generated
Anmerkung (afaik, es gibt keine entsprechende JPA-Anmerkung).
Wie generierte Bezeichnerwerte von Hibernate abgerufen werden, hängt von der Generierungsstrategie und/oder dem Datenbankdialekt ab. Für einfache Eigenschaften führt Hibernate zusätzlich ein SELECT
aus by id-Anweisung nach dem INSERT
oder UPDATE
.