悲观锁定不适用于Query API

时间:2010-06-16 13:01:55

标签: hibernate pessimistic-locking

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中出现的错误相同,或者我做错了什么?

2 个答案:

答案 0 :(得分:3)

setLockOptions工作正常。这是same bug as this one

答案 1 :(得分:1)

尝试使用LockModeType.PESSIMISTIC_FORCE_INCREMENT,看看this solution