Hibernate não pôde inicializar o proxy - sem sessão
Meu código recupera todas as informações relacionadas ao usuário:
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());
}
oud.getAddresses()
simplesmente retorna um conjunto deAddress
es do usuário.
Minha pergunta é: por que oud
objeto ainda tem seu valor (por exemplo, nome) mesmo que a sessão já esteja fechada?getAddresses()
é uma variável de instância doUserDetails
classe. Mas por que não posso recuperar seu valor, mas posso recuperar variáveis de instância regulares doUserDetails
classe?
ud.getAddresses()
é um@EmbeddedCollection
.