単方向/双方向アソシエーションを使用できるのはどれか疑問があります。Hibernate では、双方向の関連付けのベスト プラクティスを使用することが推奨されました。しかし、一方向の関連付けを使用すると回答した人もいました。
関連付けとコレクションのベスト プラクティスは何ですか?
単方向/双方向アソシエーションを使用できるのはどれか疑問があります。Hibernate では、双方向の関連付けのベスト プラクティスを使用することが推奨されました。しかし、一方向の関連付けを使用すると回答した人もいました。
関連付けとコレクションのベスト プラクティスは何ですか?
絶対的なベスト プラクティスはありません。双方向の関連付けが必要な場合は双方向の関連付けを使用し、単方向の関連付けが必要な場合は単方向を使用します。
一部の関連付けは、双方向であってはなりません。たとえば、アドレスがユーザー、消費者、ベンダー、連絡先などのアドレスである場合、アドレス内のこれらのエンティティのそれぞれへの参照 (1 つを除いてすべて null) を持つことは問題ではありません。賢い選択。
それ以外では、2 つのエンティティが密結合している場合は、通常、関連付けを双方向にして、開発とクエリの記述を容易にします (Hibernate のドキュメントに記載されているように)。
リンク先のSOの回答にも同意します。1対非常に多く、または多対非常に多くの関連付けがある場合は注意してください。ただし、この関連付けは、所有者側でない場合、エンティティに対して完全に非公開のままにすることもできます (したがって、読み込まれることはありません)。これは、クエリの作成を支援するためですが、非常に大きなコレクションの初期化を禁止します。
JPA で問題が発生しないようにするには、内部で何が起こっているかを「ただ」理解し、考える必要があります。開発中は、SQL ロギングをオンにして、実行中のクエリを確認します。