Bom dia a todos!
Estou fazendo um DAO genérico para facilitar meu desenvolvimento, e estou com uma dúvida ao buscar um objeto no banco passando sua primary key.
Segue meu método:
@Override
public <T> T getObject(Class<T> clazz, Long pk) {
// TODO Auto-generated method stub
T obj = null;
try {
this.session = MySQLDAOFactory.openSession(false);
obj = (T) this.session.load(clazz, pk);
MySQLDAOFactory.closeCurrentSession();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
this.tx.rollback();
MySQLDAOFactory.closeCurrentSession();
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
this.tx.rollback();
MySQLDAOFactory.closeCurrentSession();
e.printStackTrace();
}
return obj;
}
Esse método é chamado pela classe PessoaDAO como segue:
public PessoaBean getPessoa(Long id){
PessoaBean pessoaBean = (PessoaBean) super.getObject(PessoaBean.class, id);
return pessoaBean;
}
Quando eu faço um teste através de uma classe main apresenta o seguinte erro:
20:49:36,834 ERROR LazyInitializationException:19 - could not initialize proxy - the owning Session was closed
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:140)
at br.com.totemsistemas.alta_vista.bean.PessoaBean$$EnhancerByCGLIB$$d1eda875.getNome(
at br.com.totemsistemas.alta_vista.Test.main(Test.java:12)
Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:140)
at br.com.totemsistemas.alta_vista.bean.PessoaBean$$EnhancerByCGLIB$$d1eda875.getNome(
at br.com.totemsistemas.alta_vista.Test.main(Test.java:12)
Alguém passou por isso? Como resolvo?? Obrigado.