2011-10-28 9 views
1

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

は、私はしたくないものです:

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

は、ここでは、その後、私はJPAソリューションを望む場合

<properties> 
     <property name="allocationSize" value="1"/> 
    </properties> 
</persistence-unit> 

感謝の事前

答えて

1

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

割り当てサイズが1の場合は、パフォーマンスが低下することがあります。デフォルトでは、より良い結果が得られます。

+0

allocationSize = 1について合意しました。しかし、OPに非連続IDがあってはならないかもしれませんか?いくつかのIDブロックの割り当て後にサーバーがクラッシュした場合、IDの「穴」は発生しませんか? SessionCustomizerとは何ですか?これはEclipselink特有の機能ですか? –

+1

はい、SessionCustomizerはEclipseLink固有のAPIで、高度な機能にアクセスできます – James

+0

Thanks James :-) –

1

中を持っていることを期待してるものですpersistence.xmlに入れることはできません。orm.xml

を使用してください
+0

ただし、すべてのエンティティに別々のSequenceGeneratorがある場合、orm.xmlのすべてのSequenceGenerator要素に 'allocationSize = 1'が存在する必要があります。すべてのシーケンスジェネレータで、「allocationSizeに50のデフォルト値を上書きする」はありません。 –

+1

もちろん、それぞれは個別に指定されています。 JPA仕様に従って、その属性には「永続性単位デフォルト」はありません。 JPAの実装自体は通常、グローバルなデフォルトを提供しますが、DataNucleusは確かにそうします。私たちは常に仕様に固執することを奨励します。 – DataNucleus

+0

元気ですか、@DataNucleus;私はちょうどOPが1対多の解決策を求めていると思った。 –

関連する問題