hibernate查询时把数据更新了,求高手给解决办法
就是一个简单的查询功能,查询出来之后在页面显示没问题,但是看后台的日志,最后一句是更新,把数据库的数据更新了,第二次查询的时候数据就不对了,求高手给解决办法啊~~~~~~
------解决方案--------------------debug啊,看代码执行到哪一步的时候更新的,hibernate配置show_sql置为true
------解决方案--------------------有一个办法可以解决。
在查询后,使用evict手动让对象脱离hibernate的控制
------解决方案--------------------Hibernate的get或load方法应该不会自动执行更新操作的啊
是不是你写了update的代码。。?
------解决方案--------------------又不是update 怎么会自动更新,一定是你代码有问题
------解决方案--------------------你是在查詢的時候什么地方調用了更新的代碼吧~~
最好在查询时不开事务
------解决方案--------------------我遇见过类似的问题希望可以帮助你
java bean get方法不要做任何的操作,比如
String getName(){
return name==null?"":name;
}
用纯的javabean
String getName(){
return name;
}
因为null与"" 是不一样的
------解决方案--------------------貌似楼主对hibernate的持久化对象的理解还不够。
比如说,你查询后 XX xx = (XX)session.get(XX.class,id);
这时候 xx为持久化对象,这时候当你 xx.setXXX(XXX); 这时候,xx对象已经改变
当你关闭HibernateSessionFactory的时候,你所更改的内容会和数据库里面的数据进行同步~
------解决方案--------------------session.createQuery如果只是做查询操作 用这个试试吧