Hibernate 4.3.0.Final和Illegal尝试在非SELECT查询上设置锁定模式

时间:2013-12-23 23:33:10

标签: hibernate jpa

我刚刚从4.2.8升级到4.3.0并且我没有得到异常“非法尝试在非SELECT查询上设置锁定模式”。该查询是一个执行更新操作的简单@NamedQuery。有什么想法,我应该找出为什么这个WAS工作在4.2.8而不是4.3.0?

谢谢!

2 个答案:

答案 0 :(得分:1)

这是4.3.0.Final驱动程序中的错误。我只能找到一种解决方案。由于4.3.0支持NamedNativeQueries中的命名参数(以及in子句的集合命名参数),因此您只需将这些查询重写为Native Queries即可。然后它会工作。

对我来说当然可怕的是,在Hibernate EntityManager单元测试中,它们必须具有NOT ONE单元测试才能在NamedQuery中执行更新查询。怎么会这样?我不知道。我没有查看代码,看看他们的测试覆盖率是什么样的。但只有一个人会表现出回归。

答案 1 :(得分:0)

看起来这是由this change引起的。有人在this bug report中报告了与您的问题类似的问题,并提交了仍在审理中的提取请求。