springDAO更新指定字段

来源:互联网 发布:淘宝网t恤 编辑:程序博客网 时间:2024/06/06 20:25
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原来的值


 
原创粉丝点击