1

私は EclipseLink に取り組んでおり、パフォーマンス上の理由から、OneToMany 関係があるところはどこでも FetchType.lazy を設定しました。現在、パーシテンスはレイヤー 1 にあり、他のビジネス ロジックもあり、レイヤー 1 からのパーシテンスを使用する他の EAR もあります。これらのオブジェクトをフェッチしているときに、elipselink が ClassCast 例外をスローする問題に遭遇しました。この問題を少し掘り下げると、複数の耳での遅延読み込みが原因であることが明らかになりました。

今私が考えているのは、レイヤー1でメソッドを作成することです。これは、他の耳のIFによって呼び出され、すべてのオブジェクトをロードしたい、つまり熱心なロードメカニズムです。eclipselinkでこれをどのように達成できるのだろうかと思っていましたか?

4

2 に答える 2

1

TopLinkでは、リレーションシップを強制的にロードできるようにするロード・グループが定義されています。コピー API を使用してロードを強制することもできます。

http://wiki.eclipse.org/EclipseLink/Examples/JPA/AttributeGroupを参照して ください。

于 2012-05-23T13:39:51.907 に答える
0

あなたがやっているように、EARは互いに依存すべきではありません。クラスローダーを使って、たくさんの問題を作成します。

相互作用する複数のサービスまたは Web アプリケーションがある場合、それらは同じ耳にある必要があります。そうでない場合は、共通の jar ファイルを別の ear にコピーします。

于 2012-05-22T19:47:07.143 に答える