3

当我尝试锁定表中的一行时,有时会返回 null。这意味着什么?我验证域实例在锁定之前不为空:

println state
state = State.lock(state.id)
println state

这输出:

State 1
null

(“状态 1”是状态的字符串表示)

4

1 回答 1

0

通过这样做,您将通过悲观锁从 GORM 乐观锁(比较对象的版本之前更新)切换,这意味着读取操作将被阻塞,直到锁被释放。如果您想检索一个值,请使用下面的闭包(请参阅方法 returnValue):

State.withPessimisticLock(state.id) { Object lockedDomain ->
return "OK"
}.onNotFound { ->
    return "NG"
}
assert result.returnValue == "OK"

顺便说一句,事务是必需的,因此null您的问题中返回的 which 可能意味着您的对象不在事务中。

于 2013-05-05T00:02:21.980 回答