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ückAddress
des 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
.