毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

Hibernate查询对象成功后控制台输出update语句

更新时间:2015-1-6:  来源:毕业论文

第一次访问查询会执行update语句,第二次就不会

return  this.getHibernateTemplate().get(Team.class, id);

String hql=" from Team where id= ? ";
List list=this.getHibernateTemplate().find(hql, id);
return (Team)list.get(0);

近项目中使用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方法做过修改。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。