Ajuda DetachedCriteria

Amigos tenho a tabela A1 e a table A2 a A1 possui um ou varios registros na A2 e a A2 so pode ter 1 e exclusivamente 1 resgistro da A1 , ligacao simples

agora eu quero fazer uma DetachedCriteria +/- assim:

	DetachedCriteria criteria = DetachedCriteria.forClass(A2.class);
	criteria.add(Restrictions.ge("dtPedido", dataInicial));
	criteria.add(Restrictions.le("dtPedido", dataFinal));
	criteria.add(Restrictions.or(Restrictions.ilike("a1.nmCliente", "%"+nmCliente+"%"), Restrictions.like("a1.nmEmailCliente", nmCliente)));
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

e possivel?

entederam? eu quero da minha A2 buscar tudo que na A1(registro) tenha um determinado valor…

obrigado

é possivel sim você cria um alias

DetachedCriteria criteria = DetachedCriteria.forClass(A2.class); criteria.createAlias("a1","objeto");//transforma pega a entidade a1 que esta dentro de A2 e nas consultas utiliza-se do alias objeto para poder acessar criteria.add(Restrictions.ge("dtPedido", dataInicial)); criteria.add(Restrictions.le("dtPedido", dataFinal)); criteria.add(Restrictions.or(Restrictions.ilike("objeto.nmCliente", "%"+nmCliente+"%"), Restrictions.like("objeto.nmEmailCliente", nmCliente)));//aqui ao inves de usar A1 utiliza-se o alias objeto criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

outra coisa ao inves de usar

utilize o MatchMode

Boa funcionou com o Alias, agora outra pergunta, e possivel eu fazer um OR com mais de duas opcoes? pq o o OR ele pede uma virgula outra restricao

gostaria de fazer algo assim:

codigo = 1 AND (nm = 1 or cidade = ‘sp’ or estado = ‘sp’ or regiao = ‘bs’)

obrigado

Expression exp1,exp2..
LogicalExpression exp = Restrictions.and( exp1 ,  exp2 );
exp = Restrictions.and(exp, exp3);
criteria.add( exp );