@OneToOne не работает для Null @JoinColumn JPA - PullRequest
0 голосов
/ 05 мая 2020

При вставке записи сотрудника через Postman я получаю следующее исключение.

У меня есть следующие таблицы: 1. emp_boarding_detail -> Имеет subcon_id coulmn, а subcon_id может быть нулевым. 2. Таблица suncon_details - наличие subcon_id в качестве первичного ключа 3. Некоторые другие таблицы также

Exception:"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 я определил отношения следующим образом: enter image description here:

И это мой класс сущности SubconDetails:

enter image description here

Поскольку subcon_id может иметь значение null, я добавил новый идентификатор столбца в класс SubconDetail. Это правильный подход? Я получаю исключение ниже, когда я не передаю SubconDetail следующим образом:

Часть моего почтового запроса (почтальон): "sub_con_id": {"sub_con_id": "", "subcontractor_or_companyname": "", "w2payer_company ":" "},

1 Ответ

0 голосов
/ 05 мая 2020

Скорее всего проблема в том, что когда вы пытаетесь сохранить сущность Most EmpboardingDetails, сущность SubconDetail не существует в контексте постоянства;

Чтобы это работало, либо вам нужно заранее создать SubconDetail, либо поместить следующее в EmpBoardingDetails class

    @OneToOne(cascade = CascadeType.ALL)

Также обратите внимание на эту артикул

...