シーケンス (Oracle データベース) を使用するトリガーによってインデックスが自動入力されたテーブルがあります。
CREATE TABLE A
(
  IDS                           NUMBER(10)      NOT NULL
)
CREATE OR REPLACE TRIGGER A_TRG
BEFORE INSERT
ON A REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
  :new.IDS := A_SEQ.nextval;
END A_TRG;
/
一致する Java クラスがあります。
Class A {
   @Id
   @SequenceGenerator(name = "aSequence", sequenceName = "A_SEQ", allocationSize = 1)
   @GeneratedValue(generator = "aSequence", strategy = GenerationType.SEQUENCE)
   @Column(name = "IDS")
   Long id;
   ...
}
次のように A のインスタンスを永続化しようとすると:
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
A a = new A();
Long id = getHibernateTemplate().save(a);
transaction.commit();
私はこの問題を抱えています:
保存呼び出しによって返されるコード内の ID = "X"
データベース内の ID = "X+1"
データベーストリガーが ID を作成できるように Hibernate をセットアップする方法はありますか?
ありがとう