如何断开对象与grails中的hibernate会话?

ScA*_*er2 8 grails grails-orm

我正在尝试这样做,但我得到了错误.

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

看起来我需要从hibernate会话中删除dbObject.

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}
}
Run Code Online (Sandbox Code Playgroud)

ScA*_*er2 17

dbObject.discard()完成了这个伎俩.

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}
}
Run Code Online (Sandbox Code Playgroud)

请参阅GORM discard()文档.