我通常在整个项目中都使用乐观锁定。现在,我有了通过AJAX检索和更新对象的情况(我不知道这是否完全影响Grails或Hibernate的行为)。
对于更新,我使用仅包含object.save()
的简单服务方法。如果我更新对象一次就没有问题。如果我在第一次更新后立即更新同一个对象,我会得到StaleObjectStateException
,但是如果我等待一段时间,我不会得到异常。
现在我的问题是我必须等待多长时间才能进行第二次更新?有一般规则吗?是否有一些因素决定我必须等待多长时间(我注意到它并不总是一样)?
最佳答案
实际上,问题出在其他方面。我正在使用一个时间戳作为version
(我正在考虑更改它)。但是,我使用的MySQL版本不支持毫秒-因此,每次我更新对象时,都会对毫秒进行四舍五入,如果四舍五入后的值大于原始值会导致问题。我更新了MySQL版本,不再有任何问题。
关于hibernate - Grails-乐观锁定-两次可能的更新之间的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33892160/