В API критериев нет условия для добавления другого запроса в качестве ограничения. Я думаю, что @Niroshan Abayakoon пытался сказать, что вам нужно выполнять запросы для предложения IN
отдельно и добавлять результат Restrictions.in()
условие.
List<?> entity2Data=//get data from either a query or criteria
List<?> entity3Data=//get data from either a query or criteria
Criteria c = // obtain criteria from session
// basically creates an OR condition chain
Disjunction orConditions = Restrctions.disjunction();
orConditions.add(Restrictions.in("obj", entity2Data));
orConditions.add(Restrictions.in("obj", entity3Data));
c.add(orConditions);
это приведет к гибернации, чтобы рассмотреть список в предложении IN
.
В таких ситуациях всегда лучше использовать HQL.