Hibernate nie mógł zainicjować proxy - bez sesji
Mój kod pobiera wszystkie informacje związane z użytkownikiem:
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());
}
Theud.getAddresses()
po prostu zwraca zestawAddress
es użytkownika.
Moje pytanie brzmi: dlaczegoud
obiekt nadal ma swoją wartość (np. nazwa), mimo że sesja jest już zamknięta?getAddresses()
jest zmienną instancjiUserDetails
klasa. Ale dlaczego nie mogę pobrać jego wartości, ale mogę pobrać regularne zmienne instancjiUserDetails
klasa?
ud.getAddresses()
jest@EmbeddedCollection
.