Pessoal,
Tenho lido bastante a respeito de Grails/Groovy... e a cada dia gosto mais!
Comprei um livro do Fernando Anselmo ("Em busca do Grails") e é bem legal. Infelizemente ele foi escrito na versão 1.2.1... quer dizer.. infelizmente eu só conheci o Grails quando estava na versão 2RC...
mass.. sem delongas... tem uma parte que me confundiu um pouco, já que em todos os outros artigos/exemplos/videos que eu tive contato não tinha aparecido... o "static transients" na classe de modelo.
Nos últimos capítulos, a didática do autor é desenvolver pequenos projetos e ir detalhando passo a passo o que está fazendo.. e looogo no primeiro, tem o projeto mais que tradicional de uma livraria.
Classe autor:
class Autor {
String nome
Date nascimento
Integer totLivros // ***
static transients = ["totLivros"] //***
static hasMany = [livros:Livro]
static constraints = {...}
Integer getTotLivros() {
def autor = Autor.findByNome(nome)
def livro = Livro.findAll(from Livro as livro where livro.autor = ?"[autor]
return livro.size()
}
private void setTotLivros(Integer i) {}
String toString() {nome}
}
Entendi que esse campo será calculado, e que não ficará salvo em tabelas.
Minha dúvida é:
Está "correto" colocar esse campo calculado dentro da minha classe de modelo e ter que sobrescrever os métodos get/setters? não deveria ser em um controlador?
Reparei, e o próprio autor comenta posteriormente, que tem que eliminar uma série de linhas das views que são geradas pelo scaffolding por causa desse campo calculado...
Acho que é isso!
Obrigado!!