Otimização de validadores (Constraints)
23/09/2013 13:40
0
Bom Dia Pessoal,

Enfrento um problema com minhas aplicações e gostaria de saber o que vcs fazem no desenvolvimento. Em minhas constraints eu coloco em todas elas:

nullable:true, blank: true


Assim sou obrigado a implementar validadores manualmente e perco com a produtividade disponibilizada pelo Grails.

Faço isso porque as contraints somente são verificadas no momento da persistência (método save) e sempre que a mesma é restringida ela renderiza a página e perde todas as referências e filtros e serviços usados no método de criação (Create). Assim tenho que fazer um retrabalho pois fico montando redirecionadores para o método create e sinto que perco com a produtividade que o Grails proporciona.

Acho que estou fazendo algo errado.

Alguém poderia me ajudar ou me dar alguma dica de como trabalhar com 'contrainsts' de domínios porém com eficácia?
Tags: constraints


0
Cara fiquei meio confuso com sua pergunta... pode reformular? Pelo q entendi que é ao ocorrer um erro durante a persistência seu modelo perde as referências de antes de ir para persistência...isso me soa meio estranho... é isso mesmo? se for. Só temos como te ajudar se vc postar o código...
24/09/2013 16:53


0
Obrigado por responder Gustavo.

Como o código é grande e pode causar mais confusão espero explicar melhor com um exemplo bem simples abaixo:

Dominio:

Class Aluno{
String nome
Integer idade
Tipo tipo // transferido, bolsista, inadimeplente, etc
...

constraints{
nome nullable:false, blank: false
integer nullable:false, blank:false
tipo nullable:false, blank: false
}
}


Para tratar o tipo especifico de Aluno, em meu controlador eu coloco assim:

def create(){
def tipos = Tipo.findByStatus("DESBLOQUEADO")
[tipos: tipos, alunoInstance: Aluno(params)]
}


Assim quando as constraints não são atendidas, por exemplo o método save manda renderizar:

 if (!alunoInstance.save(flush: true)) {
render(view: "create", model: [alunoInstance: alunoInstance])
return
}


AQUI QUE ACONTECE O PROBLEMA!!!!!

Poruqe quando renderiza eu perco o filtro (tipos) implementado no método 'create()'.

Daí para circular este problema eu fico validando os dados antes de persistí-los para ver se todas as constraints estão sendo atendidas e não ter a página renderizada porém isso é um retrabalho uma vez que as constraints já fazem JUSTAMENTE ISSO.

Como você trata essa questão?
24/09/2013 19:01



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