2016-04-06 8 views
0

inverse="true"constrained="true"の違いは何ですか?Hibernate双方向配置

両方の関連付けを双方向にするために使用されていませんか? 2つのテーブルのプライマリキーをリンクする外部キー制約を追加することも両方ですか?

私は混乱しています。私を案内してください。

答えて

1

制約は、1対1リレーションの遅延読み込みに使用されます。それらは共有プライマリキーによって実装されるため、Hibernateはフェッチする前に他のテーブルにレコードがあるかどうかを知りません。制約があると、常に予想されるレコードがあることをNHibernateに伝えるので、プロキシを作成することができます。 this blog post from Ayende Rahienを参照してください。

inverseを指定すると、1対多の関係がすでに多くの側で格納されていることをNHibernateに伝えるので、一方の側にコレクションを格納する必要はありません。私はここでそれを説明しようとしました:When to use inverse=false on NHibernate/Hibernate OneToMany relationships?