org.hibernate.PropertyValueException: свойство not-null ссылается на нулевое или временное значение с таблицей объединения @One to Many в hibernate 5.4.5.Final - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть 3 класса, которые разделяют отношения один ко многим - многие к одному с таблицей соединений.Вот сопоставления,

HardwarePackage.java

@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "HDWR_PKG_DVC_XREF", joinColumns = { @JoinColumn(name = "HDWR_PKG_ID") }, inverseJoinColumns = { @JoinColumn(name = "DVC_ID") })
private Set<Device> devices;

Device.java

@OneToOne(fetch = FetchType.LAZY)
@JoinTable(name = "HDWR_PKG_DVC_XREF", joinColumns = { @JoinColumn(name = "DVC_ID") }, inverseJoinColumns = { @JoinColumn(name = "HDWR_PKG_ID") })
private HardwarePackage hardwarePackage;

HardwarePackageDeviceXREF.java

@Id
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DVC_ID")
private Device device;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "HDWR_PKG_ID")
private HardwarePackage hardwarePackage;

Когда я пытаюсьчтобы сохранить объект Device.java без создания объекта HardwarePackage.java, я получаю ошибку,

javax.persistence.PersistenceException: org.hibernate.PropertyValueException: свойство not-null ссылается на нулевое или временное значение: com.deere.isg.dm.domain.commserv.Device.hardwarePackage

Раньше это прекрасно работало с версией Hibernate 5.0.3. Окончательная версия. Кажется, они изменили что-то в 5.0.5. Наконец, но не уверен, что и почему.

1 Ответ

0 голосов
/ 20 сентября 2019

Обнаружена причина.

Существует свойство, которое вы должны установить, чтобы избежать проверки обнуляемости,

<prop key="hibernate.check_nullability">false</prop>

Хотя не уверены, почему значения по умолчанию отличаются между двумя версиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...