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 zestawAddresses 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.

questionAnswers(3)

yourAnswerToTheQuestion