当我尝试锁定表中的一行时,有时会返回 null。这意味着什么?我验证域实例在锁定之前不为空:
println state
state = State.lock(state.id)
println state
这输出:
State 1
null
(“状态 1”是状态的字符串表示)
当我尝试锁定表中的一行时,有时会返回 null。这意味着什么?我验证域实例在锁定之前不为空:
println state
state = State.lock(state.id)
println state
这输出:
State 1
null
(“状态 1”是状态的字符串表示)
通过这样做,您将通过悲观锁从 GORM 乐观锁(比较对象的版本之前更新)切换,这意味着读取操作将被阻塞,直到锁被释放。如果您想检索一个值,请使用下面的闭包(请参阅方法 returnValue):
State.withPessimisticLock(state.id) { Object lockedDomain ->
return "OK"
}.onNotFound { ->
return "NG"
}
assert result.returnValue == "OK"
顺便说一句,事务是必需的,因此null
您的问题中返回的 which 可能意味着您的对象不在事务中。