Phản hồi được tìm thấy tại Khắc phục sự cố với Oracle Trigger để tạo id từ một chuỗi
Tôi cần điều chỉnh trình kích hoạt của mình để chỉ chạy nếu không có ID nào được cung cấp:
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) dòng này cho phép Hibernate gọi A_SEQ.nextVal theo cách thủ công để đặt ID và sau đó bỏ qua trình kích hoạt. Nếu không, Hibernate sẽ nhận được giá trị tiếp theo một cách vô ích vì trình kích hoạt sẽ luôn đặt lại ID gọi tiếp theo