Seria possível coloca o trecho de código onde está reportando o erro?
clodoaldoJR
soaresinfo
O primeiro problema ocorre quando você faz consultas e o hibernate tenta criar um objeto na memória que é igual a outro, por exemplo, tentar criar dois objetos usuário, onde no banco é o mesmo registro, com o mesmo id. Procure onde você está fazendo um segundo select que retorna dados já disponíveis na memória. O segundo caso é que você tem uma collection lazy. Isso ocorria comigo, quando eu explorava a collection numa jsp, e como naquele momento a session estava fechada, o hibernate “pifa” nessa hora, a minha solução foi chamar o getter dessa collection antes de retornar para a jsp. Tenta isso e retorna se deu certo.
arthurminarini
soaresinfo , como fechar um getter de uma colection?
thiagopooh
Cara…
eu resolvi esse problema dando um Clear na sessão do hibernate
session.clear();
se ajudar, ta ai!
Leandro_R_Combinato
[b]
Eu tb estava com o mesmo problema para fazer a persistencia eu usei MERGE , ok.
Mais problema era ao fazer o DELETE dava esse erro abaixo:
delete a different object with the same identifier value was already associated with the session:
PROBLEMA RESOLVIDO
[/b]
publicListpesquisarPagamentoHb(PlanoPagamentoplanoPagamento)throwsDAOException{
Queryquery=null;Sessionsessions=null;ListpagamentoList=newArrayList<PlanoPagamento>();if(planoPagamento.getPesquisar()!=""){
sessions=HbLocator.currentSession();try{
query=sessions.createQuery(" FROM PlanoPagamento "+" WHERE "+planoPagamento.getFiltro()+" like ? ").setString(0,planoPagamento.getPesquisar()+"%");pagamentoList=query.list(); }catch(Exceptione){
e.printStackTrace();thrownewDAOException("[PagamentoDAOImpl - pesquisarPagamentoHb] "+e.getMessage(),e);}
}
HbLocator.closeSession(); returnpagamentoList;}
fbl.lucas
Leandro® Combinato:
[b]
Eu tb estava com o mesmo problema para fazer a persistencia eu usei MERGE , ok.
Mais problema era ao fazer o DELETE dava esse erro abaixo:
delete a different object with the same identifier value was already associated with the session:
PROBLEMA RESOLVIDO
[/b]
publicListpesquisarPagamentoHb(PlanoPagamentoplanoPagamento)throwsDAOException{
Queryquery=null;Sessionsessions=null;ListpagamentoList=newArrayList<PlanoPagamento>();if(planoPagamento.getPesquisar()!=""){
sessions=HbLocator.currentSession();try{
query=sessions.createQuery(" FROM PlanoPagamento "+" WHERE "+planoPagamento.getFiltro()+" like ? ").setString(0,planoPagamento.getPesquisar()+"%");pagamentoList=query.list(); }catch(Exceptione){
e.printStackTrace();thrownewDAOException("[PagamentoDAOImpl - pesquisarPagamentoHb] "+e.getMessage(),e);}
}
HbLocator.closeSession(); returnpagamentoList;}
Cara para deletar usa:
session.refresh(obj);
session.delete(obj);
S
santclear
Sem que é antigo esse post. Mas acho que ele deveria ser marcado como resolvido. Para mim, a solução dada por fbl.lucas funcionou