springDAO更新指定字段

本文介绍了一种在Spring DAO层更新指定字段的方法,避免了未设置字段被设为null的问题。通过使用HibernateTemplate的load方法加载原始实体,仅更新指定属性,并自动持久化变更。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springDAO更新指定字段:

在DAO层,更新的对象不要用new,而使用hibernateTemplate().load();

例如,传进来一个对象,该对象保存了N个字段,但不是持久化对象的所有字段

如果直接用HibernateTemplate().savaorUpdate(instanse)的话,会将其他未set的字段设置为null

如何使用数据库的默认值呢?

例:加入一个Student对象,有name,age,sex三个属性,从高层传过来的student对象只设置了name和age两个属性

如果直接在dao层update的话,显然sex属性会被null覆盖

public void reStudent(Student student){
       
        HibernateTemplate ht = this.getHibernateTemplate();
        Student stu = ht.load(Student.Class,student.getID());//ht.load(p1,p2)参数p2是student表的主属性
        stu.setName(student.getName());
        stu.setAge(student.getAge());//未设置sex属性

        ht.flush();//changes to studnet are automatically detected and persisted
        ht.savaOrUpdate(stu);
}

这时update了stu对象后,未设置的属性保持DB原来的值


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值