hibernate级联更新时,不更新null数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate级联更新时,不更新null数据相关的知识,希望对你有一定的参考价值。

参考技术A 只在hbm配置文件里 配置 not-null="true" 那样hibernate更新时候就不会更新的
如:

<property name="soCode" type="java.lang.String">
<column name="SO_CODE" length="30" not-null="true" />
</property>
希望对你有所帮助
参考技术B 不是很理解你说的什么叫做不更新null数据,意思是update语句执行了,但是级联对象中的属性值为null,这个属性就不会被更新么?那你看下你是否把级联对象的<class>属性的dynamic-update属性设置为了true?本回答被提问者采纳

hibernate基础17:cascade 级联 与 Inverse 反转

1、cascade级联操作:表示当操作一个对象时,是否级联操作与之关联的对象。在many-to-one
的映射中,不建议使用 cascade=”delete”;如果 cascade 的值不为 none 时,操作对象需要关联
对象的数据时,会先操作关联对象。在 one-to-many 中使用 cascade=”save-update”将会多出
更新 sql 语句;效率比较低,不建议使用。
Many-to-one

<hibernate-mapping>
    <!-- class 配置类 name 指类名 table 指定表名 如果不写,默认类名 为表名 -->
    <class name="cn.sxt.pojo.User" table="t_user">
        <id name="id" column="id">
            <generator class="identity">
            </generator>
        </id>
        <!-- property 是配置类的属性 name 指属性名 -->
        <property name="name" length="40" />
        <property name="age" />
        <!-- cascade 表示级联操作 
            none 默认值 不级联 
            save-update 保存更新时级联 
            delete 删除时级联 
            all 所有动作都级联 
        -->
        <many-to-one name="role" column="roleId" cascade="all" />
    </class>
</hibernate-mapping>

2、Inverse 是(集合端)的一个属性表示由谁来管理关系(在双向映射)。

Inverse=”true”表示由关联关系的另一端来管理关系;

inverse:管理的是关联关系,

cascade:管理的级联关系。建议管理关联关系由多的一端来关联。

以上是关于hibernate级联更新时,不更新null数据的主要内容,如果未能解决你的问题,请参考以下文章

hibernate级联更新外键问题

关于Hibernate级联更新的一个问题

hibernate 3如何级联更新

hibernate级联修改之后接着查询时,查不出来?,用hibernate做的返回对象为null,求解

hibernate一对多单向关联时更新问题

hibernate基础17:cascade 级联 与 Inverse 反转