A parte i valori generati dal database, ovviamente non è necessario che Hibernate restituisca l'istanza aggiornata perché l'oggetto è passato a Session.saveOrUpdate()
è l'istanza aggiornata. I valori generati dal database (sequenza, trigger, impostazioni predefinite, ecc.) verranno impostati dopo Session.saveOrUpdate
se sono di conseguenza annotati (o definiti in un file di mappatura XML).
Per valori identificativi
utilizzare il @javax.persistence.GeneratedValue
di JPA annotazione insieme a JPA @javax.persistence.Id
annotazione. Per proprietà semplici usa il nativo Hibernate @org.hibernate.annotations.Generated
annotazione (afaik non esiste un'annotazione JPA conforme).
Il modo in cui i valori identificativi generati vengono recuperati da Hibernate dipende dalla strategia di generazione e/o dal dialetto del database. Per proprietà semplici, Hibernate esegue un ulteriore SELECT
by id dopo il INSERT
o UPDATE
.