Grails não persiste nova propriedade em superclasse de domínio.
03/07/2014 16:30
0
Caros,

tenho uma classe de domínio chamada Documento, que possui algumas subclasses. Criei todos os controladores e arquivos gsp através do comando "generate-all" e já fiz diversas customizações em todas as classes e telas.

Após uma reunião, recebi a ordem de acrescentar um novo atributo a todos os documentos - o qual, convenientemente, acrescentei na classe Documento. O novo atributo é um campo obrigatório e o tipo é String.

Decidi acrescentar as referências ao novo atributo manualmente nas telas de formulário (_form.gsp) e exibição (show.gsp), pois não quis executar novamente o comando "generate-all" em todas as subclasses de Documento e ter que customizar os controladores e telas novamente.

No entanto, após compilar e executar o projeto, a propriedade do formulário (que possui nome idêntico ao do novo atributo) não tem o seu valor passado automaticamente a ele - de modo que a instância do documento fica com esse atributo nulo. Se eu alterar os métodos "save" e "update" do controlador de qualquer subclasse de Documento e colocar o valor da propriedade do formulário no atributo novo da instância sendo manipulada, o valor é salvo corretamente.

O que devo fazer para evitar que toda nova propriedade da superclasse precise ser "setada" manualmente nos controladores das subclasses?

Uso Grails 2.1.1 e Groovy 1.8.8 numa JVM 1.7.0_5.
Tags: Mapeamento de subclasses, gorm


0
Oi Luiz, tem como mostrar pra gente o código do seu controlador e também alguns detalhes das suas classes de domínio?



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