Finders em relacionamentos muito para muitos
16/02/2013 20:14
0
Considerando as tabelas:
PROFESSOR
String nome
static hasMany = [alunos:Aluno]

ALUNO
String nome
static hasMany = [professores:Professor]

Esse relacionamento dará origem a tabela PROFESSOR_ALUNO no banco.

Pergunto: Como eu pego todos os alunos que estão instanciados na tabela professor e vice versa... e como eu pegaria os mais instanciados por exemplo. Nos finders, como isso ficaria... por exemplo???
Tags: finders, many to many, muito para muitos.


0
Bom, eu não entendi direito a sua pergunta. Eu sei que é possível pegar todos os professores de um determinado aluno assim:

def aluno = Aluno.get(1)

aluno.professores

ou o contrário também. Outra coisa, não tenho muita experiência com grails mais acho que está faltando um belongsTo na sua relação. url=http://grails.org/doc/latest/guide/GORM.html#manyToMany]Your text to link here...[/url]
19/02/2013 15:56


0
Então Antonio, dessa forma ele me trás a lista de determinado aluno. preciso da lista com todos os professores de todos os alunos... saka... sem que repitam nomes. grato.


0
Certo..
então, eu tô passando por um problema com o many to many também.. eu estou tentando usar o executeCriteria......

def resultado = Professor.executeQuery('Select distinct p from Professor as p inner join p.alunos as al')

Vai te trazer todos os professores que tem vínculo com algum aluno. O distinct faz com que o professor não apareça mais de uma vez.
19/02/2013 19:03


0
Amigo,

eu prefiro criar a classe que representa a tabela "NxN". Fica bem mais fácil de programar e dar manutenção no código. Essa é a dica que dou.


1
Valew Antonio, resolveu meu problema por agora.

Yoshi, vc poderia explanar mais sua solução? seria de grande valia.


0
Concordo com o José!

Seria assim brother, vc cria mais um dominio por exemplo ProfessorAluno e nele vc declara um professor e um aluno.

Ex:
class ProfessorAluno {
Professor professor
Aluno aluno

static constraint = {
professor(nullable: false)
aluno(nullable: false)
}
}



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