带有嵌入式ID的一对一关系的JPA Hibernate问题



我一直在努力解决以下问题。在检查StackOverflow和Baeldung上的文章的解决方案后,当试图在SpringBoot应用程序中映射2个Oracle SQL表与复合PK之间的以下一对一关系时,我仍然得到不同的JPA错误:

<表类> ID 版本 tbody><<tr>12022.1

经过多次尝试,我找到了解决问题的办法。

我必须在两个实体和FetchType.LAZY之间使用一个公共键。

MasterDetails.class

public class MasterDetails {
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name="ID", column=@Column(name="MASTER_ID"))
})
private MasterId id;
@OneToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumns({
@JoinColumn(name = "master_id", referencedColumnName = "id", nullable = false),
@JoinColumn(name = "version", referencedColumnName = "version", nullable = false)
})

private Master master;
@Lob
@Column(name = "guidance", nullable = false)
private String guidance;
}

Master.class

public class MasterSheet {
@EmbeddedId
private MasterId id;
@OneToOne(mappedBy = "master", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private MasterDetails masterDetails;
}

最新更新