Como buscar dados (N:N)

Olá, pessoal.

Estava olhando um tutorial sobre o Hibernate (da comunidade GUJ) e vi um relacionamento muitos para muitos. Tipo Aluno e Turma, ou seja, um aluno pode ter muitas turmas e uma turma pode ter muitos alunos.

Foi criado uma terceira tabela Turma_has_Aluno que contém os dados de ambas as tabelas para a associação.

Gostaria de saber como é que eu recupero todas as turmas de um determinado aluno via Hibernate??? Como deve ser o comando HQL?

Obs.: O Mapeamento e o modelo segue anexo.


Via HQL vc pode fazer assim

Query query= “from Turma turma join Aluno aluno where aluno.id = :codigoAluno”

query.setParameter(“codigoAluno”, id);

ou via Criteria

Aluno aluno =(Aluno) hibernate.get(Aluno.class, id);
Criteria criteria = DetachedCriteria.forClass(Turma.class);
criteria.add(Expression.eq(“aluno”,aluno));

bom agora vc sempre tera q avaliar performace para nao prejudicar seu sistema !

Att