Как правильно сделать запрос с критериями 3 ИЛИ? - PullRequest
3 голосов
/ 02 мая 2011

Я хотел бы сделать запрос критерия с 3 ИЛИ Критериями, и я не знаю, как лучше всего это сделать.

В настоящее время у меня есть только 2 или Ограничения.

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)));

Как я могу добавить третий?

Ответы [ 2 ]

16 голосов
/ 02 мая 2011

Вы можете либо «, либо» еще одно ограничение на результат:

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

или использовать Disjunction:

Criteria criteria = session.createCriteria(Reader.class);
Junction conditionGroup = Restrictions.disjunction();
conditionGroup.add(condition1).add(condition2).add(condition3);
criteria.add(conditionGroup);
0 голосов
/ 15 августа 2016

Вы можете обратиться к этой ссылке для более подробного объяснения соединения и дизъюнкции

Как использовать объекты Критерии гибернации для нескольких условий и / или условий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...