Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Grails-乐观锁定-两个可能的更新之间的时间_Hibernate_Grails - Fatal编程技术网

Hibernate Grails-乐观锁定-两个可能的更新之间的时间

Hibernate Grails-乐观锁定-两个可能的更新之间的时间,hibernate,grails,Hibernate,Grails,我通常在整个项目中使用乐观锁定。现在我有了通过AJAX检索和更新对象的案例(我不知道这是否会影响Grails或Hibernate的行为) 对于更新,我使用一个简单的服务方法,只包含object.save()。如果我更新了一个对象,我就没有问题了。如果我在第一次更新之后立即更新同一对象,我会得到StaleObjectStateException,但是如果我等待一段时间,我不会得到异常 我现在的问题是,我需要等待多久才能进行第二次更新?有一般规则吗?是否有什么因素决定了我必须等待多长时间(我注意到它

我通常在整个项目中使用乐观锁定。现在我有了通过AJAX检索和更新对象的案例(我不知道这是否会影响Grails或Hibernate的行为)

对于更新,我使用一个简单的服务方法,只包含
object.save()
。如果我更新了一个对象,我就没有问题了。如果我在第一次更新之后立即更新同一对象,我会得到
StaleObjectStateException
,但是如果我等待一段时间,我不会得到异常


我现在的问题是,我需要等待多久才能进行第二次更新?有一般规则吗?是否有什么因素决定了我必须等待多长时间(我注意到它并不总是一样的)?

事实上,问题在于其他因素。我将时间戳用作
版本
(我正在考虑更改此版本)。但是,我使用的MySQL版本不支持毫秒-因此,每次我更新对象时,如果舍入值大于原始值,毫秒就会被舍入,从而导致问题。我更新了MySQL版本,不再有任何问题。

尝试将object.save()更改为object.save(flush:true)。flush:true将允许在继续下一行之前将更改刷新到数据库。一般规则不是使用flush:true,但在某些情况下它是必要的。