How do you disconnect an object from it's hibernate session in grails?

偶尔善良 提交于 2019-12-01 01:46:02

问题


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}
}

回答1:


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.



来源:https://stackoverflow.com/questions/2290259/how-do-you-disconnect-an-object-from-its-hibernate-session-in-grails

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!