Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Hibernate(注释)创建两个从表A到表B的一对一关系_Hibernate_Annotations_One To One - Fatal编程技术网

使用Hibernate(注释)创建两个从表A到表B的一对一关系

使用Hibernate(注释)创建两个从表A到表B的一对一关系,hibernate,annotations,one-to-one,Hibernate,Annotations,One To One,让我们从一个例子开始: Person Address homeAddress Address workAddress Address Person person 地址不会与其他人共享(因此这绝对是一对一的关系 在数据库中设置相当容易,但我不知道如何在hibernate中配置它。我不想在Person对象中使用地址列表,而且我肯定需要从地址到Person的链接 解决方法是创建一个OneToMany,在地址(“家庭”或“业务”)上使用区分符,在Person对象上获取/设置/

让我们从一个例子开始:

Person
    Address homeAddress
    Address workAddress

Address
    Person person
地址不会与其他人共享(因此这绝对是一对一的关系

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


解决方法是创建一个OneToMany,在地址(“家庭”或“业务”)上使用区分符,在Person对象上获取/设置/添加地址时,处理筛选器。

我可以这样修复它:

Person
    Address homeAddress
    Address workAddress

Address
    Person personForHomeAddress
    Person personForWorkAddress
    Person getPerson(){
      return personForHomeAddress != null ? personForHomeAddress : personForWorkAddress
    }
    void setPerson(Person person){
      ...
    }    
这不是最优的,因为我的地址表中需要2列,但我可以在hibernate中保持2个一对一的关系

还有其他想法吗