我具有以下结构,无法弄清楚如何放入正确的休眠映射。
public class Company{
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "details_x")
private Details detailsX;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "details_y")
private Details detailsY;
}
和
public class Details{
....
private Type type; //Enum that could be x or y
@OneToOne
private Company company;
}
公司提供x的详细信息,y的详细信息。一个公司只能在x或y中使用详细信息。 在数据库方面,我认为最好的设置是在tbl_company上有2列引用详细信息的Pk。 但这导致从“详细信息”到“公司”的关系不起作用。
关于如何最好地映射此图的任何建议?
编辑:将类型添加到详细信息
答案 0 :(得分:0)
您必须定义mappedBy
属性,该属性将说明我不是下面的所有者。
public class Details{
@OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL,
fetch = FetchType.LAZY, optional = false)
private Company company;
}