hibernate/jpa double OneToOne 与一个实体的双向关系
Posted
技术标签:
【中文标题】hibernate/jpa double OneToOne 与一个实体的双向关系【英文标题】:hibernate/jpa double OneToOne Bidirectional Relationship to one entity 【发布时间】:2019-04-23 07:15:35 【问题描述】:我有以下结构,我不知道如何放入正确的休眠映射。
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。 但这会导致 Details 与 Company 的关系不起作用。
任何人对如何最好地映射这个有任何建议吗?
编辑:向详细信息添加类型
【问题讨论】:
【参考方案1】:您必须定义mappedBy
属性,这将表明我不是下面的所有者。
public class Details
@OneToOne(mappedBy = "detailsX", cascade = CascadeType.ALL,
fetch = FetchType.LAZY, optional = false)
private Company company;
【讨论】:
这仅适用于 detailsX 不适用于 detailsY,我遇到的问题是其中之一以上是关于hibernate/jpa double OneToOne 与一个实体的双向关系的主要内容,如果未能解决你的问题,请参考以下文章