2

単方向/双方向アソシエーションを使用できるのはどれか疑問があります。Hibernate では、双方向の関連付けのベスト プラクティスを使用することが推奨されました。しかし、一方向の関連付けを使用すると回答した人もいました。

関連付けとコレクションのベスト プラクティスは何ですか?

4

1 に答える 1

3

絶対的なベスト プラクティスはありません。双方向の関連付けが必要な場合は双方向の関連付けを使用し、単方向の関連付けが必要な場合は単方向を使用します。

一部の関連付けは、双方向であってはなりません。たとえば、アドレスがユーザー、消費者、ベンダー、連絡先などのアドレスである場合、アドレス内のこれらのエンティティのそれぞれへの参照 (1 つを除いてすべて null) を持つことは問題ではありません。賢い選択。

それ以外では、2 つのエンティティが密結合している場合は、通常、関連付けを双方向にして、開発とクエリの記述を容易にします (Hibernate のドキュメントに記載されているように)。

リンク先のSOの回答にも同意します。1対非常に多く、または多対非常に多くの関連付けがある場合は注意してください。ただし、この関連付けは、所有者側でない場合、エンティティに対して完全に非公開のままにすることもできます (したがって、読み込まれることはありません)。これは、クエリの作成を支援するためですが、非常に大きなコレクションの初期化を禁止します。

JPA で問題が発生しないようにするには、内部で何が起こっているかを「ただ」理解し、考える必要があります。開発中は、SQL ロギングをオンにして、実行中のクエリを確認します。

于 2013-05-22T13:07:23.167 に答える