Hibernate批量更新数据问题
程序员文章站
2022-06-01 22:00:46
...
这个例子虽然很简单,但是对于理解hibernate的工作原理是很个很典型的例子,记录下方便以后查阅。需要对一批满足条件的数据进行批
今天在做一个项目中遇到一个问题,描述如下:
需要对一批满足条件的数据进行批量操作,如果符合条件,则批量更新,不符合条件则不提交,但是每次在不满足条件的情况下都会进行数据更新,,查询相关资料发现。hibernate在关闭session时候会对内存中的持久化对象进行检查操作,也就是说 如果内存中的持久化对象跟数据量中的对象内容不一致时,hibernate不管你是否update都会进行更新操作。
解决方法如下有两个
1、对这批数据的PO类进行深度克隆(自己尚未验证,网上说可行)
2、每次查询出一条数据之后调用getSession().evict(obj);进行状态更改,由持久态-->游离态,这样在关闭时候 如果显式调用hibernate的话进行状态更新,否则不会进行进行数据库更新
总结:这个例子虽然很简单,但是对于理解hibernate的工作原理是很个很典型的例子,记录下方便以后查阅。
推荐阅读
-
oracle数据库查询没问题,正常显示两个汉字;但是java后台Hibernate查询的时候只显示第一个汉字怎么解决?
-
php批量添加数据与批量更新数据的实现方法
-
数据库批量sql插入语句动态获取最新自增id问题如何解决?
-
PHP如何批量更新MYSQL中的数据
-
解决angular2 获取到的数据无法实时更新的问题
-
sql2005 批量更新问题的解决方法
-
安装SQL数据库时遇到问题。需要更新以前的visual studio 2010实例
-
.Net中DataAdapter批量插入和更新数据总结
-
php+mysqli实现批量执行插入、更新及删除数据的方法
-
解决mybatis批量更新出现SQL报错问题