有关错误的帮助org.hibernate.StaleObjectStateException

有关错误的帮助org.hibernate.StaleObjectStateException,hibernate,grails,gorm,Hibernate,Grails,Gorm,请帮我避开这个错误。它有时会来,有时会来。我知道这是因为并发请求,但如何克服它??我试着用锁代替了拿,但没用 org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): 我的代码是: def principal = springSecurityService.principal if

请帮我避开这个错误。它有时会来,有时会来。我知道这是因为并发请求,但如何克服它??我试着用锁代替了拿,但没用

org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect):
我的代码是:

def principal = springSecurityService.principal
    if (principal instanceof String)
        return null
    else {
        def user = NayaxUser.get(principal.id)
        user.merge()
        return user
    }

我也尝试过使用merge,但似乎没有任何帮助。。有什么建议吗?

我注意到的一件事是您的代码

user.merge()
return user
似乎有问题,因为如中所述:

与save方法不同,此方法返回表示重新附加对象的类的新实例。[…]如果您不使用merge方法的返回值,那么您仍然可以访问原始分离的实例,并且会出现错误,例如延迟初始化异常

因此,在您的案例中,正确的代码应该是

return user.merge()

但是,我不确定这是否解决了您的问题。

非常感谢您的输入。然而,我面临的问题是由于其他一些例外,即当任何用户过去单击某个东西时,我们希望存储他正在做的事情。。在这样做的过程中,我们犯了一个错误,在一个与用户(在我的代码中)关联的不可为空的字段中输入null值,一旦我们修复了上述错误就消失了