1

今日、DB 担当の上司から、JPA/Hibernate で間違ったシーケンスを使用していると言われましたが、そうではなかったので、生成されたテーブル エントリの ID が通常の (トリガー) 生成エントリよりも高い理由を調べました。
そして、DB トリガーでこの DB シーケンスを使用してエントリを生成するため、SO で Thisを見つけました。つまり、私の知る限り。50 倍の時間で、DB は Java アプリケーションによって生成されたシーケンス番号にヒットし始めます。

これを回避するには、シーケンス*50 ではなく、特定のシーケンスを使用する必要があります。しかし、これを行う方法がわかりませんでした。誰かが私を助けることができますか?

前もって感謝します

現在、次のように定義されています。

@Id
@Column(name = "PVP_COST_ELEMENTS_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "wtStatSEQ")
@SequenceGenerator(name = "wtStatSEQ", sequenceName = "warehouse.wt_stat_SEQ")
4

1 に答える 1

1

hibernate では、アノテーションを使用して、使用する seq を明示的に指定できます。

@Id
@Column(name = "COLUMN_NAME", nullable = false)
@GeneratedValue(strategy = AUTO, generator = "yourEntitySeqGen")
@SequenceGenerator(name = "yourEntitySeqGen", sequenceName = "SEQUENCE_NAME_IN_YOUR_DATABASE")

乾杯

于 2013-04-25T12:38:23.777 に答える