Erro no plugin Searchable
22/06/2010 00:00
0
Estou desenvolvendo uma aplicação e nela estou utilizando o plugin Searchable. Instalei o plugin e adicionei a linha
static searchable = true
na minha classe de domínio.

Até ai tudo perfeito, mas quando vou no meu formulário para criar um objeto Despesa, aparece essa "exception"
Grails Runtime Exception
Error Details
Error 500: Executing action [save] of controller [despesaviagem.DespesaController] caused exception: a different object with the same identifier value was already associated with the session: [despesaviagem.Despesa#2]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [despesaviagem.Despesa#2]
Servlet: grails
URI: /DespesaViagem/grails/despesa/save.dispatch
Exception Message: a different object with the same identifier value was already associated with the session: [despesaviagem.Despesa#2]
Caused by: a different object with the same identifier value was already associated with the session: [despesaviagem.Despesa#2]
Class: DespesaController
At Line: [24]
Code Snippet:
Stack Trace

org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [despesaviagem.Despesa#2]

at $Proxy12.saveOrUpdate(Unknown Source)

at despesaviagem.DespesaController$_closure4.doCall(DespesaController.groovy:24)

at despesaviagem.DespesaController$_closure4.doCall(DespesaController.groovy)

at java.lang.Thread.run(Thread.java:619)


Quando eu volto para minha página inicial, vejo que foi criado um objeto Despesa, mesmo com essa "exception".

O que devo fazer pra consertar isso? Um abraço!
Tags: Ferramentas/Plugins


0
Renato, tente isso, antes do despesa.save() chame o depesa.merge() . Acontece é que você já possui um objeto despesa associado com o mesmo ID na sessão, ai o merge retorna uma nova instância ao contexto do mesmo objeto (ou algo assim <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? --> ).

despesa.merge()
despesa.save()
23/06/2010 00:00


0
Lucas, onde eu coloco o despesa.merge() ??
No controlador ou na classe de domínio?
23/06/2010 00:00


0
No controlador.
23/06/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto