如何使用JPA实现以下关系?如何建立多对多关系
table person (
id int,
name text
)
table person_home (
person_id int,
home_id int,
type char(1) -- 'p' = primary, 's' = secondary
)
table home (
id int,
address text
)
一个人可以有许多家庭,和家庭可以有多少人生活在它(即多对多的关系)。 此外,一个家庭可以成为一个人的主要居所,但同时又是另一个人的二级居所。
即使数据库模式已清除,我也不确定如何建模此关系。
我想过将映射表person_home拆分成person_primary_home和person_secondary_home,但是如果可能的话,我宁愿保留模式。
是的,一个人可以有不止一种类型的房屋。所以答案是我需要将映射表建模为一个类? –
如果你想以某种方式获得'type'列,那么我相信是的。 – ametren
我遇到了这个问题,因为这对于关系有元数据非常有用。我相信我找到了一种将其称为“多对多”的方法,但我必须让对象代表这种关系。把它想象成两个“一对多”关系更容易。 – ametren