我在两个班级之间有一个可选的多对一关系。通过将外键设置为null,Hibernate将该属性转换为可选属性。
我的db-schema不允许列为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>
选择数据没有问题,因为may-to-one-tag中的not-found="ignore"
会导致null
- beta
- 对象。但是,如果我要插入Alpha
?将beta
设置为null
。我收到一个例外情况,即无法将null
插入a1
和a2
。
如果我将insert
和update
设置为false,我就摆脱了这个问题。但如果设置了关系,则会导致不保存关系。
无法更改Database-Schema,并且Hibernate-version已修复为3.5
如果你告诉我,我也很高兴,这是不可能的
答案 0 :(得分:3)