Hibernate mappedBy在聚合关联中,可以使用吗?

时间:2014-12-12 13:41:56

标签: java sql hibernate java-ee jpa

我想找出mappedBy ...如果我有一个人{地址;然后,我可以使用mappedBy"地址" ...添加地址中的Person人员。但是,如果Person有类Person {PersonDetails personDetails}和PersonDetails {Address address},那么有没有办法做一个mapbyby返回来自地址的人?我怎样才能做到这一点?

这种设置是常用的,并且工作正常:

    class Person {
            @OneToOne
            Address address;
    }


    class Address {
            @OneToOne(mappedBy="address")
            Person person;
    }

当调用新的Person()时,上面的内容将允许人自动设置地址。

但是,我可以沿着这些方向做些什么,如果是这样的话?以下示例无效:

    class Person {
            @OneToOne
            PersonDetails personDetails;
    }

    class PersonDetails {
            @OneToOne
            Address address;
    }

    class Address {
            @OneToOne(mappedBy="IS THERE A WAY TO REFER TO THE PERSON THROUGH MY OWNER, PERSONDETAILS??")
            Person person;
    }

创建新Person()时,是否必须在地址上手动设置人员。

是否可以以某种方式使用@Column(表或@JoinColumn组合?

2 个答案:

答案 0 :(得分:1)

mappedBy用于标记两个实体之间双向关系的另一面。因此,它不是为了您描述的目的。

如果您只想从Person访问Address,则可以执行此操作

class Address {
    @OneToOne(mappedBy = "address")
    PersonDetails personDetails;
    ...
    public Person getPerson() {
        return personDetails == null ? null : personDetails.getPerson();
    }
}

答案 1 :(得分:0)

无法使用Hibernate或JPA。