2016-07-14 12 views
0

双方向のOneToMany関係をマップしたかったのです。アプリケーションが関係の側面を維持する責任があるので、私は、このセクションで提案されたコードと同様に、その目的のためのモデルオブジェクトにいくつかのコードを書いた:Wiki Java Persistence pageJPA OneToManyリレーションシップメンテナンス

私はエンティティを使用するとき、私は電話のsetOwnerメソッドを呼び出して協会。次に、Phoneエンティティを永続化/マージします。

結果は、私の関係がLAZYがフェッチされているため、多くのPhoneエンティティが選択されています。

上記の記事で述べたように、コレクションが大きくなるとパフォーマンスが低下する可能性があります。

だから、選択を避け双方向に保つ方法はありませんか?

答えて

0

だから、1人の所有者が多くの携帯電話を持っていますか?電話は(私が...たとえば求める)は、複数のSIMカード、複数持つ大規模なグラフにおいて

owner ->has phone->has owner ->has phone ->has owner ->has phone -> 

、この場合、私はあなたがowner.getPhones()を呼び出すときのようなものを見ているということを言っていると仮定します大規模な結果セットを作成することができます。これらはインスタンス化されたオブジェクトのように見えますが、プロキシだけです。

はい、多数の場合、パフォーマンスに影響する可能性があります。 IMOは、JPAとHSQL、つまりCriteriaを混在させる方が良いです。私はhttp://uaihebert.com/easycriteria-3-0-new-features/ JPAが多くの状況で素晴らしいことをお勧めしますが、場合によってはリレーショナルへの直接適用がより適切です。