4

I'd like to make a criteria query with 3 OR Criterions and I dont know what is the best way to do it.

Currently I only have 2 or Restrictions.

Criteria crit = session.createCriteria(Reader.class)
.add(Restrictions.or(Restrictions.like(PUBLICATION_ID_FIELD, "Question",MatchMode.END), Restrictions.like(PUBLICATION_ID_FIELD, "Idea",MatchMode.END)));

How can I add a third one ?

hammar
  • 138,522
  • 17
  • 304
  • 385
Kévin_Bransard
  • 676
  • 2
  • 11
  • 23

2 Answers2

18

You can either "or" one more restriction to the result:

Criteria criteria = session.createCriteria(Reader.class);
criteria.add(Restrictions.or(Restrictions.or(condition1, condition2), condition3));

or use Disjunction:

Criteria criteria = session.createCriteria(Reader.class);
Junction conditionGroup = Restrictions.disjunction();
conditionGroup.add(condition1).add(condition2).add(condition3);
criteria.add(conditionGroup);
ChssPly76
  • 99,456
  • 24
  • 206
  • 195
0

You may refer to this link for more detailed explanation for conjunction and disjunction

How to use Hibernate Criteria objects for multiple and/or conditions

Community
  • 1
  • 1
James
  • 456
  • 6
  • 14