Pessoal,
O hibernate está levantando este erro. E eu não tenho a menor idéia o porque. Já verifiquei meu código diversas vezes e creio que eu não estou com duas sessões abertas. Vale salientar que este código está funcionando normalmente para classes que não tenham collections mapeadas. O código chamado que dá o erro é:
private void enviarNaoIntegrados(PrintWriter out,
String descricaoHistorico, String siglaUnidade) {
Collection historicos = repositorioIntegracao
.recuperarNaoIntegrados(descricaoHistorico);
if (historicos.size() > 0) {
out.println("<br> Enviando "
+ historicos.size() + " " + descricaoHistorico + "<br>");
out.flush();
}
int i = 1;
for (Iterator iteratorHistorico = historicos.iterator(); iteratorHistorico
.hasNext();) {
out.println(" Enviando " + i++
+ " de " + historicos.size() + " " + descricaoHistorico
+ ".......");
out.flush();
Historico historico = (Historico) iteratorHistorico.next();
long codigo = historico.getCodigo();
historico.setSiglaUnidadeIntegracao(siglaUnidade);
salvarNaBaseRemota(historico);
historico.setCodigo(codigo);
historico.setIntegrado(true);
out.println("Concluído!<br>");
out.flush();
}
repositorioIntegracao.atualizarIntegrado();
}
public Collection recuperarNaoIntegrados(String descricaoHistorico) {
HibernateUtil.closeSession();
Session session = HibernateUtil.getCurrentSession();
Transaction transaction = session.beginTransaction();
System.out.println("Consulta LOCAL!");
Collection historicos = session.createQuery(
"from " + descricaoHistorico
+ " where integrado = false order by dataAtualizacao")
.list();
transaction.commit();
return historicos;
}
public void salvarNaBaseRemota(Object objeto) {
HibernateUtilIntegracao.closeSession();
Session session = HibernateUtilIntegracao.getCurrentSession();
Transaction transaction = session.beginTransaction();
session.save(objeto);
session.flush();
transaction.commit();
HibernateUtilIntegracao.closeSession();
}
Alguém pode dar uma luz aí?
Agradeço,
Petrus Bastos.
