2010-02-18 6 views
7

Ich versuche dies zu tun, aber ich bekomme den Fehler.Wie trennen Sie ein Objekt aus seiner Ruhephase Sitzung in Grails?

„ein anderes Objekt mit dem Wert gleichen Bezeichner wurde bereits mit der Sitzung verknüpft“

Es sieht aus wie ich DBObject aus der Hibernate-Session entfernen muß.

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

Antwort

15

dbObject.discard() hat den Trick gemacht.

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

Siehe GORM discard() documentation.

Verwandte Themen