2010-02-18 6 views
7

Tôi đang cố gắng làm điều này, nhưng tôi gặp lỗi.Làm thế nào để bạn ngắt kết nối một đối tượng khỏi phiên ngủ đông trong grails?

"một đối tượng khác với giá trị định danh tương tự đã được gắn liền với phiên"

Dường như tôi cần phải loại bỏ dbObject so với phiên hibernate.

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

Trả lời

15

dbObject.discard() đã thực hiện thủ thuật.

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

Xem GORM discard() documentation.