Estou com problema quando fecho minha sessao no hibernate, faco uma criteria e coloco o resultado em um List e em um ListIterator para uma utilizacao posterior em meu jsp com um iterator, mas quando a classe q utilizo na criteria tem um campo Set q eh um mapemaneto q tenho entre as tabelas, meu jsp nao eh exibido, ja dei um debug no jsp e vi que o problema acontece quando passa pelo meu iterator. E se eu nao execute session.close() funciona perfeitamente.
vou postar uma parte do codigo:
metodo q chamo a criteria
public boolean getAllRecords(Class classToOpen, String order) {
Session ses = Persister.getInstance().getNewSession();
try {
Criteria crit = ses.createCriteria(classToOpen);
crit.addOrder(Order.asc(order));
listDados = crit.list();
it = listDados.listIterator();
return true;
} catch (HibernateException he) {
he.printStackTrace();
return false;
} finally {
ses.close(); //se tiro esta linha funciona perfeito
}
}
quando utilizo a criteria
if ( pesquisa.getAllRecords(DaoContaCaixaWeb.class, "descricao") ) {
session.setAttribute(Constants.LIST_CONTACAIXA, pesquisa.getListDados());
DaoContaCaixaWeb returnedContaCaixa = (DaoContaCaixaWeb) pesquisa.getListIterator().next();
session.setAttribute(Constants.LIST_SUBCONTA, returnedContaCaixa.getSubContas()); //o getSubContas retorna um Set com as subcontas da contacaixaweb
}
jsp
logic:present name="listsubconta" scope="session"
html:select styleClass="input01" property="cod_subconta"
html:options collection="listsubconta" labelProperty="descricao" property="controle"/
/html:select
/logic:present