Odpowiedź znaleziona pod adresem Problem z hibernacją z wyzwalaczem Oracle do generowania identyfikatora z sekwencji
Muszę dostosować wyzwalacz, aby działał tylko wtedy, gdy nie podano identyfikatora:
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) ta linia pozwala Hibernate na ręczne wywołanie A_SEQ.nextVal w celu ustawienia identyfikatora, a następnie ominięcie wyzwalacza, w przeciwnym razie Hibernate dostanie nextval za bezużyteczne, ponieważ wyzwalacz zawsze zresetuje identyfikator ponownie wywołując nextval