hibernate/jpa到一个实体的双OneToOne双向关系



我有以下结构,但我不知道如何放入正确的hibernate映射。

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上有两列引用细节的Pk。但这导致了从细节到公司的关系不起作用。

有人对如何最好地绘制地图有什么建议吗?

编辑:将类型添加到详细信息

您必须定义mappedBy属性,它会说我不是下面的所有者。

public class Details{
@OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL, 
fetch = FetchType.LAZY, optional = false)
private Company company;
}

最新更新