Как вы отключаете объект от его спящего режима в Grails? - PullRequest
8 голосов
/ 18 февраля 2010

Я пытаюсь это сделать, но я получаю ошибку.

"другой объект с таким же значением идентификатора уже был связан с сеансом"

Похоже, мне нужно удалить 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}
}

1 Ответ

16 голосов
/ 18 февраля 2010

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 () .

...