Hibernate n'a pas pu initialiser le proxy - pas de session

Mon code récupère toutes les informations relatives à l'utilisateur:

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());
}

La ud.getAddresses() retourne simplement un ensemble de Addresses de l'utilisateur.

Ma question est: pourquoi ne le ud objet disposer encore de sa valeur (par exemple, nom), même si la session est déjà fermé? getAddresses() est une variable d'instance de la UserDetails classe. Mais pourquoi je ne peux pas récupérer de sa valeur, mais je peux les récupérer régulièrement des variables d'instance de la UserDetails classe?

ud.getAddresses() est un @EmbeddedCollection.

source d'informationauteur KyelJmD | 2012-11-21