> 데이터 베이스 > MySQL 튜토리얼 > Hibernate批量更新数据问题

Hibernate批量更新数据问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:17:18
원래의
1433명이 탐색했습니다.

这个例子虽然很简单,但是对于理解hibernate的工作原理是很个很典型的例子,记录下方便以后查阅。需要对一批满足条件的数据进行批

今天在做一个项目中遇到一个问题,描述如下:

需要对一批满足条件的数据进行批量操作,如果符合条件,则批量更新,不符合条件则不提交,但是每次在不满足条件的情况下都会进行数据更新,,查询相关资料发现。hibernate在关闭session时候会对内存中的持久化对象进行检查操作,也就是说 如果内存中的持久化对象跟数据量中的对象内容不一致时,hibernate不管你是否update都会进行更新操作。

解决方法如下有两个

1、对这批数据的PO类进行深度克隆(自己尚未验证,网上说可行)

2、每次查询出一条数据之后调用getSession().evict(obj);进行状态更改,由持久态-->游离态,这样在关闭时候 如果显式调用hibernate的话进行状态更新,否则不会进行进行数据库更新

总结:这个例子虽然很简单,但是对于理解hibernate的工作原理是很个很典型的例子,记录下方便以后查阅。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿