Aê pessoal, tudo numa boa ??? Quero tirar algumas dúvidas aqui e levantar um assunto que agora me veio a mente sobre o ORM do GRails que acho que alguns podem discordar ou não.
Primeiramente, estou bastante confuso quanto ao que os relacionamentos que mapeamos em nossas Domains geram no BD.
Quero fazer um mapeamento simples de Estado -> Cidades por exemplo.
Em um MER eu pensaria que na tabela cidade, colocaria uma FK da PK de Estado para manter o relacionamento coeso. Assim com base em um código de um Estado, eu teria todas as cidades daquele.
Até aí nem um Mistério.
Eu consegui esse comportamento fazendo
class Cidade {
Integer codigo
String nome
static belongsTo = [estado: Estado]
}
ou
class Cidade {
Integer codigo
String nome
Estado estado
}
e Estado ficou apenas com seus campos comuns.
quando eu fiz assim:
class Estado {
static hasMany = [cidades: Cidade]
}
No banco, foi criado uma tabela estado_cidades que continha os ids de ambas as tabelas. Achei estranho, pois pensei que o hasMany era somente pra fazer o cascade da tabela Cidade para Estado.
Senti falta dessa explicação sobre o comportamento dos mapeamentos sobre o BD na doc (se bem que ainda não lí nem metade da mesma). Mas já lí todo o capítulo do GORM.
Agora entra a parte 2 da dúvida... Será que não estou me preocupando com o que não deveria ??? Afinal, quis entrar nesse mundo GRails justamente para mudar essa forma de desenvolver, que é pensar em um modelo ER ideal pra depois ir pensar em meus Objetos... Vejo que a Doc é voltada justamente para essa mentalidade e acho que é aí que eu estou me intrometendo onde não devia (rsrsrsrs), porém, me preocupo com questão da performance do que está sendo gerado automático.
Sempre penso que terei impactos mais lá na frente... Estou pensando correto ou estou paranóico ?? Gostaria de um Help nessa questão.
Abs []