1

通过从 Parent 对象调用 getChild() 来加载子对象(参见下面的示例)。此时,hibernate 知道父/子关系。如何使用此信息以编程方式恢复双向关系(例如在子项中设置父字段)?

@Entity
public class Parent {

    @Id
    private String id;

    @OneToOne(fetch=FetchType.LAZY)
    private Child child;

    public Child getChild(){
        return child;
    }
}

@Entity
public class Child {

    @Id
    private String id;

    @Transient
    private Object parent;

    public Object getParent(){
        return parent;
    }
}

动机:可以从不同的类引用子对象,但在运行时只允许一个父对象。使用“mappedby”会在 Child 类中产生多个“inverse”字段。这是不希望的,因为在运行时可能只存在一个父对象。父对象的类型对于用例来说并不重要。

4

1 回答 1

0

使用 @OneToOne 中的 mappedBy 属性设置属性 mappedBy = "class ref";

 @OneToOne(mappedBy = "parent", fetch=FetchType.LAZY)
 private Child child;
于 2013-10-02T11:28:49.423 回答