У меня есть необязательная взаимосвязь между двумя классами. Hibernate преобразует свойство как необязательное, установив внешние ключи равными нулю.Hibernate: необязательно много-к-одному с не-нулевыми столбцами
Моя db-схема не позволяет столбцам иметь значение null. Свойство, которое будет необязательным, представлено значением по умолчанию для этих столбцов.
<class name="sth.Alpha" ...>
....
<many-to-one name="beta" not-found="ignore" class="sth.Beta" insert="true" update="true">
<column name="a1/>
<column name="a2/>
</many-to-one>
</class>
<class name="sth.Alpha" ...>
<composite-id>
<key-property name="b1" type="int">
<column name="b1" precision="8" scale="0"/>
</key-property>
<key-property name="b2" type="int">
<column name="b2" precision="8" scale="0"/>
</key-property>
</composite-id>
</class>
выбор данных не является проблемой из-за not-found="ignore"
в мае-к-одному-теге это приведет к null
- beta
-объекту. Но если я хочу вставить Alpha
? с beta
установлен на null
. Я получаю исключение, что невозможно вставить null
в a1
и a2
.
Я избавлюсь от этой проблемы, если установить insert
и update
на false. Но это приводит к невозможности сохранения отношения, если оно установлено.
Database-схема не может быть изменен и Hibernate-версия фиксируется до 3,5
Я также был бы рад, если бы вы сказать мне, что это не возможно
Привет, спасибо за ваш ответ, звучит многообещающе. Но страница, с которой вы связываетесь, по крайней мере на несколько дней вниз. Но я попробую свойство unsavedvalue – thomas