Como implementar deleção lógica em Grails
05/02/2016 09:56
1
Olá a todos!
Recentemente, tive a necessidade de implementar deleção lógica no meu sistema e testei algumas soluções já disponíveis na comunidade, porém, sem sucesso.
Testei o plugin Logical Delete da nanlabs (https://grails.org/plugin/logical-delete), mas ele funcionou apenas para as domains que não implementam Serializable e como meu sistema possui apenas algumas domains que não implementam Serializable, não funcionou 100%.
Outro plugin testado foi o Hibernate Filter (http://grails.org/plugin/hibernate-filter) apesar de não apresentar nenhum erro não deletou logicamente o registro.
Partindo para outra linha de soluções tentei a exclusão feita pelo próprio hibernate (http://blog.caelum.com.br/exclusao-logica-utilizando-hibernate/), mas este artigo usa as anotações do JPA o que não é compatível com meu sistema. Então pesquisei como fazer o equivalente no Grails e, se não estiver erroado, cheguei a conclusão que teria de sobrescrever algumas classes do hibernate (http://grails.github.io/grails-doc/latest/guide/GORM.html#advancedGORMFeatures).
Alguém já fez a exclusão lógica com Grails? Quais passos foram feitos ou quais plugins foram utilizados?
Toda ajuda é bem vinda! ;)
Desde já agradeço pelas respostas.
Tags: Grails,Logical Delete,Databases


2
Interessante a sua duvida Moacir: divulguei no meu Twitter para ver se alguém pode nos ajudar aqui pois também fiquei curioso.
Um caminho é a implementação de filtros do Hibernate: inclusive o plug-in envers faz justamente isto. Foi o que pensei para este caso, mas vou fazer uma pesquisa melhor para ver o que encontro e vou te mantendo informado por aqui, ok?


0
Ok. Também vou continuar minha pesquisa e irei postar os resultados aqui independente da solução adotada. ;)
05/02/2016 10:10


2
Pessoal, consegui solucionar o problema.
Depois de muito procurar achei o que estava ocasionando o problema da não deleção lógica do registro, havia um problema no código do meu sistema e como na exclusão, geralmente, não chamamos o validate nenhum erro era exibido no console.
Haviam alguns relacionamentos obrigatórios que estávamos tentando desfazer e então ao chamar o método delete() o sistema dava erro. Resumindo, era um problema legado.
O plugin funciona tranquilamente, apenas as coleções ele não deleta, mas isso já foi relatado na página do plugin no github.
Kiko, muito obrigado pela ajuda.
10/02/2016 09:14



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