[code]@SuppressWarnings(“unchecked”)
public List getAlunos(Integer codigoTurma){
Criteria crit = session.createCriteria(Turma_Aluno.class);
crit.add(Restrictions.eq(“turma.codigo”, codigoTurma));
List<Turma_Aluno> lista = new ArrayList<Turma_Aluno>();
lista = crit.list();
List ids = new ArrayList();
for (Turma_Aluno i : lista ) {
ids.add(i.getAluno().getCodigo());
}
return getBeansByIds(ids);
}
@SuppressWarnings("unchecked")
public List<Aluno> getBeansByIds(List<Serializable> codigos) {
try {
if (codigos.size() == 1) {
List<Aluno> resultado = new ArrayList<Aluno>();
resultado.add(getBeanTurma(codigos.get(0)));
return resultado;
} else if (codigos.size() > 1) {
Criteria crit = session.createCriteria(Aluno.class);
crit.add(Restrictions.not(Restrictions.in("codigo", codigos)));
return crit.list();
}
} catch (Exception e) {
e.printStackTrace();
}
return new ArrayList<Aluno>();
}[/code]
Vini seguinte: a consulta retorna TODOS os alunos da TURMA numa datatable, até ai td bem, nessa mesma tela tenho um selectitem que traz todos os ALUNOS do banco e serve pra adicionar ALUNOS akela referida TURMA e consequentemente na datatable, minha idéia é que nesse selectitem de ALUNOS quero filtrar duma forma q só venha quem NÃO esteja na datatable abaixo, para que o cliente só cadastre na referida turma um aluno que lá naum esteja, num sei se fui claro… janjan essa solução que passou resolve essa minha dúvida?
Se for necessário tiro um print da minha página pra exemplificar melhor…
cara tu com erteza nao vai precisar criar 2 arraylist
e trabalhar em cima de objetos
dessa forma, usando a consulta pra filtrar isso tu vai conseguir
oque fiz é que nas tuas 2 consultas peguei oque era comum entre elas
oque tu queria de uma e nao queria de outra
tenta rodar pra ver o resultado…
unica forma de ter certeza…
abraços
[quote=janjan]cara tu com erteza nao vai precisar criar 2 arraylist
e trabalhar em cima de objetos
dessa forma, usando a consulta pra filtrar isso tu vai conseguir
oque fiz é que nas tuas 2 consultas peguei oque era comum entre elas
oque tu queria de uma e nao queria de outra
tenta rodar pra ver o resultado…
unica forma de ter certeza…
abraços