如何识别在Hibernate中自引用一到一个关系映射/资双方?(How to identify th

2019-10-21 22:43发布

我的休眠模式有一个端口实体。 每个端口应该具有零个或一个连接到另一个端口,因此有“connectedPort”字段引用相同的实体:

public class Port {
    // ...
    @OneToOne
    @JoinColumn
    private Port connectedPort;
    // ...
}

但通常为@OneToOne会有的关系,关系的“映射”面的“拥有”的一面 - 在这里,这也如此 - 如果是的话,如何和为什么?

Answer 1:

OneToOne API文档:

如果关系是双向的,非持有端必须使用mappedBy的元素OneToOne注释指定的拥有方的关系字段或属性。

所以,要么你connectedPort具有其反向连接的端口没有关系,现场的持有者connectedPort有外键,或关系是双向的,你必须指定谁拥有使用外键mappedBy

编辑当我从您的代码片断假设你连接的端口有没有谁连接到他们,所以你的知识Port持有该知识它们连接的人持有外键,并且这种关系的拥有方。



文章来源: How to identify the mapped/owned sides of a self-referencing one-to-one relationship in Hibernate?