Otimização do Save no controller
27/12/2017 10:44
0
Prezados,

Verifiquei que ao salvar um registro programaticamente no controller - meuDomínioInstance.save() - os métodos de beforeUpdate e afterUpdate descritos no domínio - MeuDomínio - até aí tudo bem, é exatamente o que pretendemos. Mas para a minha surpresa estes mesmos métodos de outros domínios associados à colunas do  meuDominio também são chamados.
[b]
[/b]

Por exemplo, se o meuDominio tem uma coluna gestor que o associa com um outro domínio de Colaboradores, os eventos beforeUpdate e afterUpdate do domínio Colaboradores também serão disparados.

Já tentei contornar este comportamento utilizando
[b]meuDominioInstance.save(flush: true, deepValidate: false, validate: false)
[/b]
porém sem nenhum resultado. Estes métodos continuam sendo disparados nos domínios associados.

Alguma ideia?

Obrigado
Tags: Grails,beforeUpdate,afterUpdate ,save,deepValidate,validate


0
Costumo evitar este tipo de problema adotando a estratégia, em meus mapeamentos, do que chamo de "Pai inconsequente", isto é: apenas as terminações sabem qual a entidade pai, e o pai não sabe dos filhos relacionados.

Com isto evito por exemplo o contrário, de estar salvando no pai e automaticamente todos os filhos serem atualizados de forma acidental. Infelizmente, não sei se é possível controlar o comportamento dos eventos de persistência no Hibernate. Na documentação do GORM sei que não há nada falando a este respeito: entretanto pode ser que, pelo fato deste ser baseado no Hibernate, na documentação do Hibernate haver alguma configuração (talvez de mapeamento) que impeça este comportamento (mas acho muito pouco provavel que exista)



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