每当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);

 

相关文章

网站地图xml地图