Java Hibernate:可选多对一,列不为空

Java Hibernate:可选多对一,列不为空,java,hibernate,orm,hbm,Java,Hibernate,Orm,Hbm,我在两个类之间有一个可选的多对一关系。Hibernate通过将外键设置为null将属性转换为可选 我的db架构不允许列为null。可选属性由这些列的默认值表示 <class name="sth.Alpha" ...> .... <many-to-one name="beta" not-found="ignore" class="sth.Beta" insert="true" update="true"> <column name="a

我在两个类之间有一个可选的多对一关系。Hibernate通过将外键设置为null将属性转换为可选

我的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>

....
选择数据没有问题,因为在may to one标记中,它将导致一个
null
-
beta
-对象。但是如果我想插入一个
Alpha
?将
beta
设置为
null
。我得到一个例外,即不能将
null
插入
a1
a2

如果我将
insert
update
设置为false,我就可以解决这个问题。但如果设置了关系,则不会保存该关系

无法更改数据库架构,并且Hibernate版本已固定为3.5

如果您告诉我,与
结合使用是不可能的,我也会很高兴

结合使用可能会有所帮助


嗨,谢谢你的回答,听起来很有希望。但是你正在链接的页面至少有几天被关闭了。但是我会尝试一下未被拍卖的价值观,谢谢你的回答,听起来很有希望。但是你正在链接的页面至少有几天被关闭了。但是我会尝试unsavedvalue属性