Oracle
 sql >> Database >  >> RDS >> Oracle

Creazione di una query UPDATE RETURNING in Hibernate

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 .