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

Hibernation + séquence oracle + déclencheur

Réponse trouvée sur Problème HIbernate avec Oracle Trigger pour générer un identifiant à partir d'une séquence

Je dois adapter mon déclencheur pour qu'il ne s'exécute que si aucun ID n'est donné :

CREATE OR REPLACE TRIGGER A_TRG
BEFORE INSERT
ON A REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
WHEN (New.IDS is null) -- (1)
BEGIN
  :new.IDS := A_SEQ.nextval;
END A_TRG;
/

(1) cette ligne permet à Hibernate d'appeler manuellement A_SEQ.nextVal pour définir l'ID, puis de contourner le déclencheur, sinon Hibernate obtiendra le nextval inutilement car le déclencheur réinitialisera toujours l'ID en appelant à nouveau nextval