Mein Code alle für den Benutzer bezogenen Informationen abruft:Hibernate konnte nicht Proxy initialisiert werden - keine Session
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());
}
Die ud.getAddresses()
gibt einfach eine Menge von Address
es des Benutzers.
Meine Frage ist: Warum hat das ud
Objekt immer noch seinen Wert (zB Name), obwohl die Sitzung bereits geschlossen ist? ist eine Instanzvariable der Klasse . Aber warum kann ich seinen Wert nicht abrufen, aber ich kann reguläre Instanzvariablen der Klasse UserDetails
abrufen?
ud.getAddresses()
ist ein @EmbeddedCollection
.
"@EmbeddedCollection" - meinst du '@ ElementCollection'? –