Inserção somente em tabela intermediaria
15/10/2010 00:00
0
Bom dia Pessoal.

Alguem ja precisou criar uma tabela intermediaria entre duas entidade, e fazer a inserção da referencia somente nesta?
Por exemplo eu tenho fornecedores e produtos, que irão possuir um relacionamento many-to-many.

Com isso necessito de uma tabela intermediaria entre eles, e quando insiro uma lista de produtos(que ja estarão devidamente cadastrados) em um fornecedor, o mesmo deve inserir isso apenas como referencia na tabela intermediaria.

O mapeamento para criar a tabela intermeidiaria eu ja realizei e esta funcionando, porem ainda não consegui fazer a inserção apenas nesta.
Sempre a inserção e feita nela e na tabela de produtos.

Alguem ja fez isso?Teria como fazer através de mapeamentos nas domain classes ou de comandos?

Um Abraço!
Tags: Tópicos avançados


0
Oi Juliano.

Não tenho muita certeza, mas acho que a solução que vou lhe propor talvez resolva seu problema.

Se você tem um relacionamento manyToMany, então você vai ter duas classes de domínio mais ou menos como no exeplo abaixo.

class DominioA {
static hasMany = [muitosB: DominioB]
}

class DominioB {
static hasMany = [muitosA: DominioA]
}

O código abaixo fará exatamente o que você quer


dominioA.muitosB.add(novo_dominio_B)
dominioA.save()


Só isto já não resolveria o seu problema?


0
Henrique, resolvi da segiunte forma:


class DominioA {
static hasMany = [muitosB: DominioB]
}

class DominioB {
static hasMany = [muitosA: DominioA]
static belongsTo = DominioA
}


Pelo que li na referencia e pelo que testei, um deles deve estar como belongsTo para o outro.
Dai funciona certinho.

Muito Obrigado pelo auxlio.!

Um Abraco!
15/10/2010 00:00



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