hibernate执行完查询操作后又执行许多更新操作

来源:互联网 发布:阿里云elb 编辑:程序博客网 时间:2024/04/30 10:01

最近项目中使用SSH框架发现一个奇怪的问题,在执行完this.getHibernateTemplate().find方法之后,后台会打出一条Hibernate:Select .....查询语句,但是接下来会打印出一条update语句。

查找所有的配置文件之后,最后终于发现原因是因为底层DTO映射类中属于的Set方法中发生变化,例如正常情况应该是:

public void setComname(String comname){
        this.comname = comname;
}

但是我写成:

public void setComname(String comname){
       this.comdesc = StringUtils.rightTrim(comdesc);
}

将查询出来的comname值的右空格进行截取了,以致hibernate判断查询出来的对象发生了变化,所以会自动执行更新操作,同时查询出来如果是全表记录,则会自动执行全表的update操作,也就是很多条update语句。

如果出现这种问题首先检查是否对属性的Set方法做过修改。

更多文章见:http://www.16boke.com

原创粉丝点击