【问题标题】:@OneToOne is failing for Null @JoinColumn JPA@OneToOne 对于 Null @JoinColumn JPA 失败
【发布时间】:2020-08-20 05:32:41
【问题描述】:

通过 Postman 插入员工记录时,出现以下异常。

我有以下表格: 1. emp_boarding_detail -> 有 subcon_id 列, subcon_id 可以为空。 2. suncon_details 表 - 以 subcon_id 作为主键 3.还有一些其他的表

例外: “org.hibernate.TransientPropertyValueException:对象引用了一个未保存的瞬态实例 - 在刷新之前保存瞬态实例:com.boarding.preboardingentities.Empboardingdetails.subcondetails -> com.boarding.preboardingentities.Subcondetails;嵌套异常是 java.lang.IllegalStateException:org .hibernate.TransientPropertyValueException: 对象引用了一个未保存的瞬态实例 - 在刷新之前保存瞬态实例:com.boarding.preboardingentities.Empboardingdetails.subcondetails -> com.boarding.preboardingentities.Subcondetails"

在 EmpboardingDetails 实体类中,我定义了如下关系:

这是我的 SubconDetails 实体类:

由于 subcon_id 可以为 null,所以我在 SubconDetail 类中添加了新的列 id。这是正确的方法吗?当我没有通过 SubconDetail 时,我遇到了以下异常:

我的部分帖子请求(邮递员): “sub_con_id”:{ “sub_con_id”:“”, “分包商或公司名称”:“”, “w2payer_company”:“” },

【问题讨论】:

  • 你应该直接发布你的代码而不是图片,这样更具可读性;

标签: rest jpa spring-data-jpa


【解决方案1】:

最可能的问题是,当您尝试持久化 Most EmpboardingDetails 实体时,持久化上下文中不存在 SubconDetail 实体;

为此,您必须事先创建 SubconDetail 或将以下内容放入 EmpBoardingDetails 类中

    @OneToOne(cascade = CascadeType.ALL)

也看看这个article

【讨论】:

    猜你喜欢
    • 2016-08-31
    • 2017-05-29
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多