通过从 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”字段。这是不希望的,因为在运行时可能只存在一个父对象。父对象的类型对于用例来说并不重要。