MoldBomInfo VO
@OneToOne
@JoinColumn(name = "MACHINE_CODE", insertable = false, updatable = false)
private MachineInfo machineInfo;
机器信息语音
public class MachineInfo {
@Id
@Column(name="MACHINE_CODE")
private String machineCode;
@Column(name="MACHINE_NAME")
private String machineName;
@Column(name="STD_LEAD_TIME")
private int stdLeadTime;
@Column(name="FACTORY_CODE")
private String factoryCode;
@Column(name="MCH_GRP_CODE")
private String mchGrpCode;
MoldBomInfo 表
机器信息表
错误代码
javax.persistence.EntityNotFoundException: Unable to find e3view.factoryview.main.mold.model.MachineInfo with id
当前未设置 FK。 我需要根据 MachineBomInfo 表的 MACHINE_CODE 列获取 MachineInfo 表的 MACHINE_NAME。
问题在于 MachineBomInfo 表中的 MACHINE_CODE 可能为 NULL。 因此,当使用JPA时,会发出ERROR CODE。
目前我没有操作表的权限。
不设置FK,如何通过JPA得到我想要的结果?
最佳答案
在 JoinColumn
,如果您不提供referencedColumnName
,默认column
将是ID
.
@OneToOne
@JoinColumn(name = "MACHINE_CODE", insertable = false, updatable = false, referencedColumnName = "HERE_YOUR_REF_COLUMN")
private MachineInfo machineInfo;
关于java - 没有 FK 的 JPA 关联中的 NULL 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60086604/