@OneToOne对Null @JoinColumn JPA失败。

问题描述 投票:0回答:1

当通过Postman插入雇员记录时,我得到以下异常。

我有以下表:1.emp_boarding_detail -> Has subcon_id coulmn and subcon_id can be null.2.suncon_details table - Having subcon_id as Primary Key 3. 其他一些表也有

异常。"org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.boarding.preboardingentities.Empboardingdetails.subcondetails -> com.boarding.preboardingentities.Subcondetails; nested exception is java. lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.boarding.preboardingentities.Empboardingdetails.subcondetails -> com.boarding.preboardingentities.Subcondetails"

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

这就是我的SubconDetails实体类。

enter image description here

由于subcon_id可能是空的 所以我在SubconDetail类中添加了新的列id。这样做对吗?当我没有按以下方式传递SubconDetail时,我得到了以下异常。

我的Post Request(Postman)的一部分。"sub_con_id" : { "sub_con_id" : "", "subcontractor_or_companyname" : "", "w2payer_company" : "" },

rest jpa spring-data-jpa
1个回答
0
投票

最有可能的问题是,当你试图持久化Most EmpboardingDetails实体时,SubconDetail实体在持久化上下文中不存在。

为了解决这个问题,你必须事先创建SubconDetail,或者在EmpBoardingDetails类中加入以下内容。

    @OneToOne(cascade = CascadeType.ALL)

也可以看看这个 文章

© www.soinside.com 2019 - 2024. All rights reserved.