У меня есть необязательные отношения многие-к-одному между двумя классами.Hibernate переводит свойство как необязательное, устанавливая внешние ключи в null.
Моя db-схема не позволяет столбцам быть нулевыми.Свойство, которое должно быть необязательным, представлено значением по умолчанию этих столбцов.
<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"
в теге may-to-one может привести к null
- beta
-объект.Но если я хочу вставить Alpha
?с beta
, установленным на null
.Я получаю исключение, что невозможно вставить null
в a1
и a2
.
Я избавлюсь от этой проблемы, если для insert
и update
установить значение false.Но это приводит к тому, что отношения не сохраняются, если они установлены.
База данных-схема не может быть изменена, а Hibernate-версия установлена на 3,5
Я также был бы рад, если бы вы сказали мне, чтоэто невозможно