Grails GORM: Proxy konnte nicht initialisiert werden - keine Sitzung

Ich habe eine Methode mit folgender 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) 
                }
            }
        }
    }
}

Die Ausnahme, die ich hier bekomme, istorg.hibernate.LazyInitializationException: could not initialize proxy - no Session im zweiten Teil meines Codes. Hier dieuserStatus Feld ist ein Verweis auf eine andere Domänenklasse.

Ich habe versucht hinzuzufügenit.refresh() undHibernate.initialize(it)zu dem Code, bevor Eigenschaften überprüft werden, aber keine Verwendung. Was mache ich hier falsch?

upd: Ich habe versucht das anzurufenit.attach Methode, bevor die Eigenschaften überprüft werden, aber direkt nach der Methode den Wert von aufrufenit.attached istfalse.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage