• Hibernate 更新部分字段的实现


    在Hibernate 中,有时我们只需要更新部分字段,此时如果使用update()方法,会将所有字段都更新,对于没有set的字段,就会设置成NULL,如果这些字段里面有非空的字段就会报错。

    解决的方法可以直接写HQL语句,但是如果字段较多,并且更新的字段是不确定的时候,直接写HQL语句就显得比较麻烦。

    另一种方法是在XML文件中设置dynamic-update="true",这样设置以后,只对set了的字段更新,没有set的字段就不会更新。

    <class name="com.hzhi.entity.Person" table="person" dynamic-update="true">

    还有一种有效的方法就是先根据需要更新的记录主键,找出这条记录,根据提交的参数set相应的字段,然后再update()。

    // 根据用户提交的ID找出person2
    int id = person.getId();
    Person person2 = xkmpService.findById(id);
    // 设置需要更新的字段的值到person2
    person2.setAge(person.getAge());
    // 更新person2
    xkmpService.updatePerson(person2);
  • 相关阅读:
    控制反转和依赖注入
    共识机制是什么?
    实用拜占庭容错算法PBFT
    三种框架对比react vue 和Angular对比
    go语言学习笔记
    激活方法总结
    钱包助记词
    简历中存在的问题的处理
    why we use Symbols in Hash
    compact过滤数组中的nil
  • 原文地址:https://www.cnblogs.com/mstk/p/5431771.html
Copyright © 2020-2023  润新知