を@OneToOne
使用して関係をマッピングする方法に関するいくつかのベストプラクティスを読みました@MapsId
そして、私は疑問に思っています、エンティティが「共有」されている場合、それは機能しますか?
例えば...
Employee has Address OneToOne...
Department has Address OneToOne...
ここで同じアプローチを使用できますか?またはEMPLOYEESテーブルとDEPARTMENTSテーブルにはfk_address_idが必要ですか?
これをインターフェースで処理する必要がありますHasAddress
か?
それは機能しますが、共有は親と子の間で行われ、親の間では行われません。したがって、はEmployee
独自のAddress
行をDepartment
使用しますが、は別の行を使用します。
しかし、@OneToOne
あなたがそれを共有したいのであれば、これは関係ではありません。これは、が親エンティティであり、およびが子エンティティで@ManyToOne
あるAddress
可能性があるためです。この場合、両方とにFKカラムを使用するPK。Employee
Department
Employee
Department
Address
したがって、Address
行を共有する場合は、多対1の関連付けです。そうでない場合@MapsId
は、Address
エンティティとmappedBy
onDepartment
およびで1対1で使用できますEmployee
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加