JPA/Hibernate ...criteria duvida como colocar condição "OR" ?Help

Olá,

como colocar no criteria a condição "or"
pois estou montando dinamicamente qual seria o comando ???

Não estou usando Criterion pois não sei qual variavel virá
da pagina jsp senão teria que criar um Criterion para 20 variaveis possiveis …

Se houver outra forma de fazer …

abs



-- essa é tela que aparece para usuário


Criterio de busca
=================

Campo             Comparação  Valor      Condição
=====             ==========  =====      ========
Nome                =         Joao          OR        
Data Nascimento     >         01/01/1970    

e estou montando da seguinte forma a rotina


                      // vou ler list

                      for (CriterioConsultaDetail ccs :cc.getCriterios()){

                  		 // inicio controle para um registro 
				if (tamanhoLista==1){

                                 .......
                                 .......
				}else{
                                         ???? é aqui que estou em duvida pois quando leio
                                         ???? o primeiro registro sei que a varivel condicao é igual a "OR"

                                        /// tem mais de um registro
					if (classeCriteria.equals(ccs.getNomeTabela())){
						if ( "=".equals(ccs.getCondicao()) ){
						   c.add( Restrictions.eq(ccs.getCampo(), ccs.getValor()) );

					}else{
						c.createAlias("address", "addressAlias");
						c.add(Expression.eq("addressAlias.street", ccs.getValor()));   
					}
					

                                       ??? teria que colocar a comando aqui para ser "OR" pois do jeito que está fica "AND"
                                       ??? alguém poderia me ajudar ......					
				}
			    // fim controle para um registro
			}

Tb estou com essa msm duvida!
tenho q montar dinamicamente…

alguma forma melhor ai?

Conseguiu resolver o seu ja cara?

cara… provavelmente vc ja resolveu o problema, mas vo postar aqui 2 soluções possíveis que eu encontrei pra outras pessoas

public List<Aluno> alunosCursandoAlgumDessesCursos(List<Curso> cursos) {
  Criteria criteria = session.createCriteria(Aluno.class);
  //join com as matrículas
  criteria.createCriteria("matriculas", "m");
  
  //usando a disjunction para fazer um ?ou? entre vários elementos
  Disjunction ou = Restrictions.disjunction();
  for (Curso curso : cursos) {
    ou.add(Restrictions.eq("m.curso", curso);
  }
  criteria.add(ou);

  //eliminando resultados repetidos
  criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
  return criteria.list();
}
public List<Aluno> alunosCursandoAlgumDessesCursos(List<Curso> cursos) {
  Criteria criteria = session.createCriteria(Aluno.class);
  //join com as matrículas
  criteria.createCriteria("matriculas", "m");
  
  // if necessario, pois se vc adicionar uma lista vazia no restrictions, da erro no hibernate
  if(!cursos.isEmpity()){
     criteria.add(Restrictions.in("m.curso", cursos));
 }
  return criteria.list();

Eu particularmente usei a segunda escolha.