0

让我们从一个例子开始:

Person
    Address homeAddress
    Address workAddress

Address
    Person person

地址不与其他人共享(因此它绝对是一对一的关系。

在数据库中设置相当容易,但我不知道如何在 hibernate 中配置它。我不想使用 Person 对象中的地址列表,而且我肯定需要从地址返回到人员的链接。

一种解决方法是创建一个 OneToMany,在地址('home' 或 'business')上使用微分器,并在 Person 对象上获取/设置/添加地址时,处理过滤器。

4

1 回答 1

0

我能够像这样修复它:

Person
    Address homeAddress
    Address workAddress

Address
    Person personForHomeAddress
    Person personForWorkAddress
    Person getPerson(){
      return personForHomeAddress != null ? personForHomeAddress : personForWorkAddress
    }
    void setPerson(Person person){
      ...
    }    

这不是最优的,因为我的地址表中需要 2 列,但我可以在休眠中坚持 2 个一对一的关系。

还有其他想法吗?

于 2013-07-01T12:08:07.540 回答