首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate:具有非空列的可选多对一

Hibernate:具有非空列的可选多对一
EN

Stack Overflow用户
提问于 2012-01-25 21:25:03
回答 1查看 2.6K关注 0票数 0

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

我的db-schema不允许列为null。可选的属性由这些列的默认值表示。

代码语言:javascript
复制
<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-object。但是如果我想插入一个Alpha呢?将beta设置为null。我得到了一个例外,这是不可能插入nulla1a2

如果我将insertupdate设置为false,我就解决了这个问题。但是,如果设置了关系,这将导致不保存该关系。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-26 23:20:34

<id unsavedvalue="whatever">结合使用的how to use 0 instead of null可能会有所帮助

other solution

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9003455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档