Ruhezustand konnte Proxy nicht initialisieren - keine Sitzung

Mein Code ruft alle Informationen zum Benutzer ab:

SessionFactory sessionFactory = HibernateUtilities.configureSessionFactory();
Session session = sessionFactory.openSession();
UserDetails ud = null;
Set<Address> userAddress = null;

try {
    session.beginTransaction();
    ud = (UserDetails) session.get(UserDetails.class, 1);
    userAddress = ud.getAddresses();
    session.getTransaction().commit();
} catch (HibernateException e) {
    e.printStackTrace();
    session.getTransaction().rollback();
} finally {
    session.close();
}

System.out.println(ud.getName());

for(Address addr: userAddress){
    System.out.println("State " + addr.getState());
}

Dasud.getAddresses() gibt einfach einen Satz von zurückAddressdes Benutzers.

Meine Frage ist: warum tut das das?ud Objekt hat immer noch seinen Wert (z. B. Name), obwohl die Sitzung bereits geschlossen ist?getAddresses() ist eine Instanzvariable derUserDetails Klasse. Aber warum kann ich seinen Wert nicht abrufen, aber ich kann reguläre Instanzvariablen desUserDetails Klasse?

ud.getAddresses() ist ein@EmbeddedCollection.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage