Início > Programação > Utilizando Disjunction Para Emular o OR do Criteria

Utilizando Disjunction Para Emular o OR do Criteria

É possível fazer um OR com Criteria sem utilizar Restrictions.or(exp1, exp2)? Sim.

Fazemos um OR assim:

Criteria criteria = session.createCriteria(Classe.class); 
Criterion restricao1 = Restrictions.eq("propriedade", "valor1"));
Criterion restricao2 = Restrictions.eq("propriedade", "valor2"));
criteria.add(Restrictions.or(restricao1, restricao2));

Para emular um OR, podemos utilizar Disjunction:

/* 
 * A disjuncao emula um 'OR'. Poderiamos utilizar 
 * DetachedCriteria para fazer o 'OR'com subqueries.
 */
Disjunction disjuncao = Restrictions.disjunction();
disjuncao.add(Restrictions.eq("propriedade", "valor1"));
disjuncao.add(Restrictions.eq("propriedade", "valor2"));
Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: