Duvida: Buscando dados com Criteria em relacionamento

1 resposta
lucasmm

Bom pessoal estou precisando de ajuda na seguinte situação:

Eu tenho 5 tabelas no meu banco Mysql: Aluno, Aluno_has_pauta, Pauta, Turma e AnoLetivo.
Eu preciso fazer uma consulta de acorco com o n° da turma e o anoLetivo, mas somente consigo fazer com um dos dois.

Vou postar o codigo de teste que estou fazendo:

Session session;
    Transaction trans;

    public void comecandoPOG() {
        session = HibernateUtil.getSessionFactory().openSession();
        trans = session.beginTransaction();

        //Aqui eu preciso fazer a busca de acordo com o ano e a turma, nesse caso está somente com a turma

        List<AlunoHasPauta> resultado = session.createCriteria(AlunoHasPauta.class).createCriteria("pauta").createCriteria("turma").add(Restrictions.eq("codturma", 1101)).list();
        trans.commit();
        System.out.println("Turma\tNome\tAno\tTurno");
        for (AlunoHasPauta aluno : resultado) {
                System.out.println(aluno.getPauta().getTurma().getCodturma()
                        + "\t" + aluno.getAluno().getNome()
                        + "\t" + aluno.getPauta().getAnoletivo().getCodano()
                        + "\t" + aluno.getPauta().getTurma().getTurno().getTurno());
        }
        session.close();
   }

Pessoal, como eu posso fazer essa busca???

1 Resposta

lucasmm

Salve pessoal, consegui resolver o problema :lol:

Criteria criteria = session.createCriteria(Pauta.class)
           .createAlias("turma","tu").add(Restrictions.eq("tu.codturma", 1001)).
           .createAlias("anoletivo","al").add(Restrictions.eq("al.codano", 2010));
List<Pauta> listaPautas = criteria.list();

Se alguem estiver em um problema parecido fica a dica :wink:

Vlw

Criado 18 de agosto de 2011
Ultima resposta 26 de ago. de 2011
Respostas 1
Participantes 1