java - 没有 FK 的 JPA 关联中的 NULL 处理

标签 java spring-boot jpa

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 表

enter image description here

机器信息表

enter image description here

错误代码

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/

相关文章:

spring - 来自 Spring/Hibernate 的原生 SQL 没有实体映射?

java - 为什么这会抛出 NullPointerException?

java - 使用 Spring Security 在 @WebMvcTest 中测试 JwtDecoder

java - spring-boot启动过程中出现异常如何处理?

java - 针对 MySQL 在 Hibernate 实体中建模 UUID

java - Hibernate 标准仅映射到层次结构中的一个类

java - spring - 设置 hibernate 命名策略不起作用

java - 按 Enter 键继续奇怪的事情(Java)

Spring 启动 : exit jvm on "Application run failed"

java - 惰性一对一 Spring JPA 和构建 "dynamic"JSON