Grails GORM: konnte nicht initialisiert proxy - keine Sitzung

Ich habe eine Methode mit der folgenden Struktur:

public void run(){
    ... 
    for (...) { //this part works correct

        User.withTransaction {
            User user = User.findByUsername(...);

            Position pos = Position.findByName(...)
            if(pos){ ...
            } else { ...
                try{
                    pos.save(flush:true);
                    user.position = pos;
                } catch (Exception e){ ... }
            }
            ...
            try{
                user.save(flush:true, failOnError: true);
            } catch (Exception e){ ... }
        }
    }
    //this part doesn't work
    User.findAll().each {
    ...
        if (...){
            User.withTransaction{
                ...
                //here the operation fails with 
                //org.hibernate.LazyInitializationException: 
                //could not initialize proxy - no Session
                if (!userDetailsMap.containsKey(it.username) 
                         && it.userStatus != blocked){
                    it.userStatus = blocked
                    it.save(flush:true) 
                }
            }
        }
    }
}

Ausnahme, ich bin immer hier ist org.hibernate.LazyInitializationException: could not initialize proxy - no Session im zweiten Teil von meinem code. Hier die userStatus Feld ist ein Verweis auf eine andere domain-Klasse.

Habe ich versucht, hinzuzufügen it.refresh() und Hibernate.initialize(it)um den code, bevor Eigenschaften überprüft werden, aber keine Verwendung. Was mache ich hier falsch?

upd: ich habe versucht, rufen Sie die it.attach - Methode, bevor die Eigenschaften überprüft werden, sondern direkt nach dem Aufruf der Methode den Wert von it.attached ist false.

Rufen Sie diese Methode in einer view?
Nein, diese Methode wird aufgerufen, durch einen scheduler. Eine Aufgabe Hinzugefügt wird, die ein scheduler die Aufrufe der run() Methode.

InformationsquelleAutor svz | 2013-04-11

Schreibe einen Kommentar