Duvida, GORM belongsTo
07/09/2009 00:00
0
Qual a diferença no código abaixo:


class Airport {
static hasMany = [routers:Route]
}

class Route {
Airport airport
}

//ou

class Route {
static belongsTo = [airport:Airport]
}

Tags: Grails


0
[quote="dsnogueira"]Qual a diferença no código abaixo:


class Airport {
static hasMany = [routers:Route]
}

class Route {
Airport airport
}

//ou

class Route {
static belongsTo = [airport:Airport]
}

[/quote]

No banco de dados, o resultado é o mesmo, no entanto, nas classes de domínio há algumas diferenças:

quando você escreve o atributo belongsTo, está deixando implícito que a sua classe de domínio esta em uma relação um para n no banco de dados. Além disto, também cria um novo atributo na sua classe de domínio (no exemplo que você passou, se chama airport).

Já quando você coloca a instrução hasMany, você também estará explicitando o relacionamento um para n, no entanto, o atributo que será criado (no seu exemplo, routers) será uma Collection armazenando os itens filhos da sua classe.

Agora, continuando: vamos nos aprofundar um pouco mais no seu código ok?


class Route {
Airport airport
}

//ou

class Route {
static belongsTo = [airport:Airport]
}


Na prática, a diferença será pouca ou nenhuma. No entanto, podem haver variações de um SGBD para outro, pois a geração de código por parte do Hibernate varia de SGBD para SGBD.


0
Entendi, percebi também que quando tenho duas relações um pra n numa unica classe de dominio, eu tenho que usar as duas formas e ainda o mappedBy.



class Airport {
mappedBy = [routers:'airport', aircraft:'airport']
static hasMany = [routers:Route, aircraft:Aircraft]
}

class Route {
Airport airport
belongsTo = [airport:Airport]
}

class Aircraft{
Airport airport
belongsTo = [airport:Airport]
}



Esta certa dessa forma? Eu tive que fazer isso pra resolver um problema meu, mais não sei se é a forma correta
08/09/2009 00:00


0
O mapped by neste caso é desnecessário (pelo menos eu nunca precisei colocar esta instrução ao fazer algo semelhante ao que você está fazendo)



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