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

Ibernazione + sequenza di oracoli + trigger

Risposta trovata in Problema di ibernazione con Oracle Trigger per la generazione di ID da una sequenza

Devo adattare il mio trigger per l'esecuzione solo se non viene fornito alcun ID:

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) questa riga consente a Hibernate di chiamare manualmente A_SEQ.nextVal per impostare l'ID e quindi bypassare il trigger altrimenti Hibernate otterrà il nextval inutilmente perché il trigger ripristinerà sempre l'ID chiamando di nuovo nextval