你如何在 grails 中断开一个对象与它的休眠会话的连接? [英] How do you disconnect an object from it's hibernate session in grails?

查看:21
本文介绍了你如何在 grails 中断开一个对象与它的休眠会话的连接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试这样做,但出现错误.

具有相同标识符值的不同对象已经与会话关联"

看来我需要从休眠会话中删除 dbObject.

def object = messageParserService.parseMessage(messageType, messageText)def dbObject = object.getClass().findByIdentifier(object.identifier)如果(dbObject != null){object.id = dbObject.idobject.dateCreated = dbObject.dateCreated}if(!object.save()) {object.errors.each {打印它}}

解决方案

dbObject.discard() 解决了问题.

def object = messageParserService.parseMessage(messageType, messageText)def dbObject = object.getClass().findByIdentifier(object.identifier)如果(dbObject != null){object.id = dbObject.idobject.dateCreated = dbObject.dateCreateddbObject.discard()}if(!object.save()) {object.errors.each {打印它}}

请参阅 GORM discard() 文档.>

I'm trying to do this, but I get the error.

"a different object with the same identifier value was already associated with the session"

It looks like I need to remove dbObject from the hibernate session.

def object = messageParserService.parseMessage(messageType, messageText)
def dbObject = object.getClass().findByIdentifier(object.identifier)
if(dbObject != null){
    object.id = dbObject.id
    object.dateCreated = dbObject.dateCreated
}
if(!object.save()) {
    object.errors.each {println it}
}

解决方案

dbObject.discard() did the trick.

def object = messageParserService.parseMessage(messageType, messageText)
def dbObject = object.getClass().findByIdentifier(object.identifier)
if(dbObject != null){
    object.id = dbObject.id
    object.dateCreated = dbObject.dateCreated
    dbObject.discard()
}
if(!object.save()) {
    object.errors.each {println it}
}

See the GORM discard() documentation.

这篇关于你如何在 grails 中断开一个对象与它的休眠会话的连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆