Oracle
 sql >> Base de données >  >> RDS >> Oracle

Créer une requête UPDATE RETURNING dans Hibernate

Hormis les valeurs générées par la base de données, il n'est évidemment pas nécessaire qu'Hibernate renvoie l'instance mise à jour car l'objet est passé à Session.saveOrUpdate() est l'instance mise à jour. Les valeurs générées par la base de données (séquence, déclencheur, valeurs par défaut, etc.) seront définies après Session.saveOrUpdate s'ils sont annotés en conséquence (ou définis dans un fichier de mappage XML).

Pour valeurs d'identifiant utilisez le JPA @javax.persistence.GeneratedValue annotation en conjonction avec le JPA @javax.persistence.Id annotation. Pour propriétés simples utiliser le natif Hibernate @org.hibernate.annotations.Generated annotation (autant que je sache, il n'y a pas d'annotation JPA correspondante).

La manière dont les valeurs d'identifiant générées sont récupérées par Hibernate dépend de la stratégie de génération et/ou du dialecte de la base de données. Pour les propriétés simples, Hibernate exécute un SELECT supplémentaire par instruction id après le INSERT ou UPDATE .