Tenho uma classe chamada usuarios no hibernate que tem um mapeamento many-to-one que retorna uma classe da sigla e local de onde trabalha este usuario. Executo uma named query para validar o usuario mas quando chamo qualquer metodo da classe do mapeamento me retorna a seguinte excessao:
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
Metodo q executa a named query
public boolean runNamedQuery(String namedQuery) {
Session ses = Persister.getInstance().getNewSession();
try {
Query select = ses.getNamedQuery(namedQuery);
select.setString("par1", "texto1");
select.setInteger("par2", "texto2");
listDados = select.list();
it = listDados.listIterator();
return true;
} catch (QueryException qe) {
qe.printStackTrace();
return false;
} catch (HibernateException he) {
he.printStackTrace();
return false;
} finally {
ses.close(); [b]se tiro esta linha funciona perfeito,, mas nao eh como vou deixar a sessao aberta, o hibernate fecha sozinho ?[/b]
}
}
Codigo q executa a named query
Cadastro pesq = new Cadastro();
if (pesq.runNamedQuery("login", par)) {
DaoUsuario usuario = (DaoUsuario) pesq.getListIterator().next();
FPrincipal.getInstance().local = usuario.getSiglaUsuario().getLocal(); // quando chamo qualquer metodo de getSiglaUsuario() ocorre o exception
FPrincipal.getInstance().sigla = usuario.getSiglaUsuario().getSigla();
FPrincipal.getInstance().usuario = usuario.getUsuario();