0

我在两个类之间有一个可选的多对一关系。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? 设置betanull. 我得到一个例外,即无法插入nulla1and a2

insert如果我设置和update为假,我就摆脱了这个问题。但这会导致如果设置了关系,则不会保存关系。

Database-Schema 无法更改,Hibernate-version 固定为 3.5

如果你告诉我,我也会很高兴,那是不可能的

4

1 回答 1

3

如何结合使用 0 而不是 null可能<id unsavedvalue="whatever">会有所帮助

或者

其他解决方案

于 2012-01-26T15:20:33.570 回答