Pessoal ando pesquisando bastante sobre o uso que criteria ainda existem algumas coisas que para mim são limitadas com relação
a uso e como tenho que resolver isso logo vim recorrer a você. Criei uma Entidade chava aluno, entidade prova e entidade resposta.
Onde um aluno possuí várias respostas e uma resposta pode ser de vários alunos. Entretanto preciso fazer um filtro para que me retorne
todas as respostas de um aluno para uma determinada prova e ai vêm o problema na tabela resposta eu não tenho o idAluno apenas o
idProva e sendo assim a única coisa que consigo é trazer todas as respostas daquela prova mas não todas as resposta daquela prova
para aquele aluno porque o relacionamento entre aluno e resposta é de muitos para muitos e dessa forma o que eu tenho é uma terceira
tabela . Alguém saberia dizer como resover esse tipo de consulta ou que tipo de métodos da API critéria podem ser utilizados tentei resolver
o problema usando o método que tenho abaixo onde eu tento listar os objetos dessa consulta e deletar apenas esses registros listados
agradeço ajuda ou até mesmo as dicas que possam me ajudar a pesquisar e resolver o problema.
[code]
@SuppressWarnings(“unchecked”)
public void deleteResposta(Aluno aluno, Prova prova) {
ArrayList<Resposta> respostaList = new ArrayList<Resposta>();
//CreateSessionFactory é apenas uma classe que controla meu objeto session para seguir o padrão sigleton ele apenas retorna uma session.
session = CreateSessionFactory.openSession();
Criteria c = session.createCriteria(Aluno.class);
c.createCriteria("cpfMatricula", aluno.getCpfMatricula());
Disjunction ou = Restrictions.disjunction();
ou.add(Restrictions.eq("prova", prova));
c.add(ou);
respostaList = (ArrayList<Resposta>) c.list();
for (Resposta resposta : respostaList) {
session.delete(resposta);
}
tx.commit();
session.close();
}[/code]