Oracle
 sql >> база данни >  >> RDS >> Oracle

Хибернация + оракулна последователност + тригер

Отговорът е намерен на Проблем с HIbernate с тригер на Oracle за генериране на идентификатор от последователност

Трябва да адаптирам тригера си да работи само ако не е даден идентификатор:

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) този ред позволява на Hibernate да извика ръчно A_SEQ.nextVal, за да зададе идентификатора и след това да заобиколи тригера, в противен случай Hibernate ще получи nextval безполезно, защото тригерът винаги ще нулира идентификатора, извиквайки 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. В Oracle, по отношение на синтаксиса - как да преобразувам (+) синтаксиса в модерен конвенционален JOIN?

  2. Защо Oracle SQL Optimizer игнорира предиката на индекса за този изглед?

  3. Някакви недостатъци на битовите флагове в колоните на базата данни?

  4. Zeppelin Oracle SQL заявката се изпълнява по-рано

  5. Извикване на функция на оракул от JPA