So heben Sie die Proxy-Freigabe für ein Objekt im Ruhezustand auf

Wie kann ich den Proxy eines Ruhezustandsobjekts aufheben, sodass der Polymorphismus unterstützt wird?

Betrachten Sie das folgende Beispiel. Die Klassen A und B sind zwei Entitäten im Ruhezustand. B hat zwei Subtypen C und D.

List<A> resultSet = executeSomeHibernateQuery();
for(A nextA : resultSet) {
    for(B nextB : nextA.getBAssociations() {
        if(nextB instanceof C) {
            // do something for C
        } else if (nextB instanceof D) {
            // do something for D
        }
    }
}

Dieser Code kann weder den C- noch den D-Block ausführen, da die B-Auflistung verzögert geladen wurde und alle Instanzen von B Hibernate-Proxys sind. Ich hätte gerne eine Möglichkeit, die Proxy-Funktion für jede Instanz aufzuheben.

Hinweis: Mir ist klar, dass die Abfrage so optimiert werden kann, dass alle Bs schnell abgerufen werden. Ich suche eine Alternative.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage