シーケンス (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 をセットアップする方法はありますか?
ありがとう