GORM - "Pai inconsequente" (Quando só o Filho sabe quem é o Pai)
19/04/2016 15:24
1
Há bastante tempo eu li uma matéria no blog do Kico falando sobre um conceito de "pai inconsequente ", que inclusive é utilizada aqui no GrailsBrasil.

Com essa técnica, apenas a classe filho sabe quem é o pai

class Pai{}
class Filho{
static belongsTo = [pai:Pai]
}


Isso resulta em mais performance, menos consumo de memória e um banco de dados mais organizado.

O conceito é muito interessante, mas queria saber se há condições que o jeito convencional (onde a classe Pai hasMany Filhos) seria melhor.

Acredito que uma das "desvantagens" seria a impossibilidade de usar finders dinâmicos na classe pai.

Utilizando o conceito do Pai Inconsequente as Criterias do Hibernate estarão igualmente disponíveis?

Como eu pegaria todos os Pais que tem Filhos Amarelo.
Tags: Grails, GORM , Pai inconsequente, criteria


1
Oi Rafael, que legal eu ser citado aqui!

Há situações nas quais faz sentido usar o hasMany sim. Normalmente são os casos nos quais você sempre precisa dos filhos. Nestas situações, pode usar sem problema.

O grande ponto que me levou à teoria do "pai inconsequente" foi que na esmagadora maioria das vezes não era necessário saber quais os registros filhos, o que me levou a alguma experimentação (especialmente no código fonte do Grails Brasil) e às conclusões que coloquei neste post: http://www.itexto.net/devkico/?p=1097

Lembre: se hasMany fosse bug, não existia no framework. É mais uma questão de saber quando usá-lo.


0
Olá Kiko!
Supondo que se tenha um Catálogo de Produtos, e as vendas realizadas para este produto:

class Produto {
?static hasMany = [vendas: Venda]
}

class Vendas {
         static belongsTo = [produto: Produto]
}

Você acha que seria mais conveniente utilizar a teoria do pai inconsequente, já que o numero de vendas para um produto tende a ser grande?

Obrigado!
08/05/2016 18:45



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