Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Hibernacja + sekwencja wyroczni + wyzwalacz

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wyjście dwóch różnych zapytań w jednym wyniku w Oracle SQL

  2. Hibernacja> CLOB> Oracle :(

  3. Ocena zmiennych logicznych PL/SQL w Oracle Forms

  4. Czy istnieje sposób użycia FORALL do wstawiania danych z tablicy?

  5. Oracle INSERT INTO SELECT(...) Zachowanie wyjątku DUP_VAL_ON_INDEX