gpt4 book ai didi

java - Hibernate:带有非空列的可选多对一

转载 作者:行者123 更新时间:2023-12-02 00:31:26 24 4
gpt4 key购买 nike

我在两个类之间有一个可选的多对一关系。 Hibernate 通过将外键设置为 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 插入 a1a2

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

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

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

最佳答案

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

other solution

关于java - Hibernate:带有非空列的可选多对一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com