3

私たちは一対多の関係を構築しようとしています。これがどのように機能するのか理解しようとすると、私たちはそれを行う方法を示すthis exampleを見つけました。Hibernate Mapping 1対多の変わった例

この例では合理的なER図を示していますが、一般には1対多の関係では補助表は必要ありません。 StudentIdカラムをPhoneテーブルに挿入し、この識別子を介して2つのテーブルを結合することによってリンクを達成することができます。対照的に、この例では、代わりに3つのテーブルを結合する必要があります。

このような振る舞いがHibernateの管理を容易にするいくつかの良い方法によって正当化されるのか、それとも記事を書いた人の誤りであるのか疑問に思っています。

どのような考えですか?

答えて

2

私は答えを見つけた、とまさに回避策の一種だそうです... http://en.wikibooks.org/wiki/Java_Persistence/OneToMany#Join_Table

は、通常、それはあなたができないか、ドン」の場合、Javaでの参照をManyToOneをバックに定義するのが最善ですこれをやりたければ、中間結合表を使用して関係を保管することができます。これはManyToMany関係に似ていますが、ターゲット外部キーに一意制約を追加すると、OneToManyであることを強制できます。