List esns=session.createQuery("from Pool e where e.status=:status "+
"order by uuid asc")
.setString("status", "AVAILABLE")
.setMaxResults(n)
.setLockMode("e", LockMode.PESSIMISTIC_WRITE)
.list();
我写了上面的查询,但它没有生成for update
查询,同时发生了更新。
我使用的是3.5.2版本且它有一个bug in Criteria API,与查询API中出现的错误相同,或者我做错了什么?
答案 0 :(得分:3)
setLockOptions工作正常。这是same bug as this one。
答案 1 :(得分:1)
尝试使用LockModeType.PESSIMISTIC_FORCE_INCREMENT,看看this solution。