Mapeamento - Herança
01/12/2011 23:23
0
Como é feito o mapeamento objeto relacional das classes de dominio que herdam de outra classe?
E tem como alterar a representação dessa hierarquia no banco de dados?
Tags: gorm herança


0
Oi,

tem sim: você primeiro tem de definir qual estratégia de mapeamento quer seguir: table per hierarchy ou não.

Se for table per hierarchy, você terá uma tabela única para salvar toda a sua hierarquia de herança. Caso contrário, terá uma tabela para cada classe.

A melhor referência que conheço sobre o assunto está neste link.


0
Obrigada...

A partir desse link que você postou, cheguei nesse :
http://grails.org/doc/latest/guide/single.html#5.5.2.3 Inheritance Strategies

Para ficar uma tabela para cada classe da hierarquia é só colocar na classe mais abstrata


static mapping = {
tablePerHierarchy false
}


Só não consegui uma coisa ...

Eu tenho 5 classes, são dois níveis de hierarquia:

Em um dos níveis eu queria usar
tablePerHierarchy false
e no outro
tablePerHierarchy true

Mas dá um erro dizendo que precisa informar quem seria o descriminator

Eu fiz isso e continuou dando o mesmo erro ...


class A {
static mapping = {
tablePerHierarchy false
}
}

class B extends A {
static mapping = {
tablePerHierarchy true
discriminator column : 'TYPE'
}
}

class B1 extends B {
static mapping = {
discriminator column : 'TYPE', value : 'B1'
}
}

class B2 extends B {
static mapping = {
discriminator column : 'TYPE', value : 'B2'
}
}


Mas enfim ... como não era tão importante essa diferença de mapeamento, deixei tudo
tablePerHierarchy false
^^

Valeu pela ajuda!!
05/12/2011 06:03


0
Opa,

no caso do discriminador, eu evitaria uma coluna com o nome TYPE. Isto porquê dependendo do banco de dados você pode ter alguns problemas por poder se tratar de uma palavra reservada na implementação SQL em questão.



0
Sim, lembro que eu usei class também
Como o próprio grails faz.. mas não deu
05/12/2011 14:55


1

Olha só pra complementar eu acho importante dar uma olhada também em como o Hibernate faz esse mapeamento aqui.
07/12/2011 10:19



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