2010-02-18 36 views
7

我正在嘗試這樣做,但是我收到了錯誤消息。如何從grails中的hibernate會話中斷開對象?

它看起來像我需要從Hibernate的Session刪除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} 
} 

回答

15

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

查看GORM discard() documentation