我在两个类之间有一个可选的多对一关系。Hibernate 通过将外键设置为 null 将属性转换为可选。
我的 db-schema 不允许列为空。可选的属性由这些列的默认值表示。
<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
and a2
。
insert
如果我设置和update
为假,我就摆脱了这个问题。但这会导致如果设置了关系,则不会保存关系。
Database-Schema 无法更改,Hibernate-version 固定为 3.5
如果你告诉我,我也会很高兴,那是不可能的