hibernate做查询操作出现更新问题:
2017-04-28 10:10
295 查看
出现问题:首先这段代码在action层,查询出RsLeave类后修改这个类的type属性(红色箭头所示),后面继续进行RsLeave关联类的查询(绿色箭头所示),程序运行后发现数据库中当前RsLeave中type值已经被修改,因此推出虽然表面进行只是查询,但其实内部也发生了更新操作。
解决办法:1:把修改type属性的操作放到所有查询操作后
2:在事物层的查询方法中添加事物为只读(@Transactional(readOnly=true))
问题分析:hibernate在做查询操作的时候会去查找session中当前类的属性值与关联类的属性值是否发生改变,如果发生改变则会进行更新操作。
相关文章推荐
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题(非原创,摘自书中)
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。问题解决办法
- 求助Hibernate问题(我使用Criteria 查询数据库表时,当客户端调用到第3次就出现问题 )
- asp+access中 打开网页时出现“操作必须使用一个可更新的查询”原因及解决办法
- asp中 打开网页时出现“操作必须使用一个可更新的查询”原因及解决办法
- 使用odbc/oledb操作excel出现"操作必须使用一个可更新的查询"
- 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
- ASP.Net下如何解决关于Access数据库“操作必须使用一个可更新的查询”问题
- 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
- 解决Access数据库中"操作必须使用一个可更新的查询"问题
- 用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
- ASP“操作必须使用一个可更新的查询”问题的解决办法
- 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 远程操作Unix上的Oracle数据库的方法解决查询数据时出现乱码的问题
- 浏览ASP页面,出现的错误“操作必须使用一个可更新的查询”