Entityではなくpersistence.xml内でallocationSizeを構成するにはどうすればよいですか

allocationSize の一種の「リファクタ」を実行して、各エンティティ内で構成する代わりにperssitence.xml内に配置する可能性はありますか?

ここに私が持っていないことがあります:

@SequenceGenerator(name="AGENT_IDAGENT_GENERATOR", sequenceName="AGENT_SEQ", allocationSize=1)

ここに私が期待していることがあります

    
        
    

前もって感謝します

1

2 答え

persistence.xmlでSessionCustomizerを使用し、セッションのログインのSequenceオブジェクトを反復処理し、事前割り当てサイズを設定できます。

1の割り当てサイズ、それはお勧めしません、それはパフォーマンスが悪くなります、あなたはデフォルトでより良いかもしれません。

1
追加された
はい、SessionCustomizerはEclipseLink固有のもので、APIと高度な機能にアクセスできます
追加された 著者 James,
allocationSize = 1について合意しました。しかし、OPに非連続IDがあってはならないかもしれませんか?いくつかのIDブロックの割り当て後にサーバーがクラッシュした場合、IDの「穴」は発生しませんか? SessionCustomizerとは何ですか?これはEclipselink特有の機能ですか?
追加された 著者 Piotr Nowicki,
ありがとうジェームス:-)
追加された 著者 Piotr Nowicki,

If wanting a JPA solution, then you can't put it in persistence.xml, just use orm.xml

1
追加された
もちろん、それぞれ個別に指定されています。 JPA仕様に従って、その属性には「永続性単位デフォルト」はありません。 JPAの実装自体は通常、グローバルなデフォルトを提供しますが、DataNucleusは確かにそうします。私たちは常に仕様に固執することを奨励します。
追加された 著者 DataNucleus,
しかしもう一度 - すべてのエンティティに別々のSequenceGeneratorがある場合、 'allocationSize = 1'はorm.xmlのすべてのSequenceGenerator要素に存在する必要があります。すべてのシーケンスジェネレータで、「allocationSizeに50のデフォルト値を上書きする」はありません。
追加された 著者 Piotr Nowicki,
さて、@DataNucleusの解説に感謝します。私はちょうどOPが1対1の解決策を求めていると思った。
追加された 著者 Piotr Nowicki,