Oprócz wartości generowanych przez bazę danych nie ma oczywiście potrzeby, aby Hibernate zwracał zaktualizowaną instancję, ponieważ obiekt został przekazany do Session.saveOrUpdate()
jest zaktualizowana instancja. Wartości generowane przez bazę danych (sekwencja, wyzwalacz, wartości domyślne itp.) zostaną ustawione po Session.saveOrUpdate
jeśli są odpowiednio opatrzone adnotacjami (lub zdefiniowane w pliku mapowania XML).
Dla wartości identyfikatorów
użyj JPA @javax.persistence.GeneratedValue
adnotacja w połączeniu z JPA @javax.persistence.Id
adnotacja. Dla prostych właściwości użyj natywnego Hibernate @org.hibernate.annotations.Generated
adnotacja (faktycznie nie ma adnotacji zgodnej z JPA).
Sposób pobierania wygenerowanych wartości identyfikatorów przez Hibernate zależy od strategii generowania i/lub dialektu bazy danych. Dla prostych właściwości Hibernate wykonuje dodatkowy SELECT
przez instrukcję id po INSERT
lub UPDATE
.