私は頭がいっぱいです。 EclipseLinkとシーケンスジェネレータの事前割り当て
@GeneratedValue(strategy = GenerationType.AUTO, generator = "email-seq-gen")
@SequenceGenerator(name="email-seq-gen", sequenceName="EMAIL_SEQ_GEN", allocationSize=500)
はその後、私のschema.ddlに私はこれを持っている:ここで見ることが
CREATE SEQUENCE EMAIL_SEQ_GEN START 1 INCREMENT 500;
あまり休止状態では、私は次のように問題を持っていません。すべてが期待どおりに機能します。
The sequence named [EMAIL_SEQ_GEN] is setup incorrectly. Its increment does not match its pre-allocation size.
だからもちろん、私は周りのGoogleとのEclipseLinkは初期値が1の場合は負の数を作成し、それがallocationSizeに等しくなければならないことについて何かを参照してください。私はEclipseLinkのに自分のプロバイダを切り替える場合は、私はこのエラーを取得します。
「initialValue = 500」を追加し、DDLスクリプトを「START 500」に更新するとこれが修正されますが、現在では番号が1ではなく500で開始されます。これはEclipseLinkのバグですか、それとも私が理解していないものがありますか?私は1から始まり、エンティティ(この場合は500)に調整された割り当てサイズを持つシーケンスを生成したいと思います。 EclipseLinkを使ってどうすればいいですか?
ありがとうございます!これを依頼する
もう一つの方法は、このDDL与えられた....です:
CREATE SEQUENCE EMAIL_SEQ_GEN START 1 INCREMENT 500;
のEclipseLinkでそれを使用するために私のエンティティに注釈を付けるための正しい方法は何ですか?私はEclipseLinkのが私のDDLを生成するようにすると
、これは:
@GeneratedValue(strategy = GenerationType.AUTO, generator = "email-seq-gen")
@SequenceGenerator(name="email-seq-gen", sequenceName="EMAIL_SEQ_GEN", initialValue=1, allocationSize=500)
はこれを生成します:種類の「1で始まるとDDLを作成することは不可能であることを意味し
CREATE SEQUENCE EMAIL_SEQ_GEN INCREMENT BY 500 START WITH 500;
"を使用しています。
逆方向に進むと(エンティティからDDLを生成するようにします)、何が生成されますか? – DannyMo
元の投稿を編集して質問に回答を追加しました。 –