Да JPA 2 Critera поддерживает возврат определенного поля из сущности и использование предложения where, которое включает предложение in
. Ниже приведен пример, который берет JPQL и преобразует его в аналогичный параметр на основе критериев JPA 2.
JPQL:
select b.a from B b where a in (1, 2, 3, 4)
Критерии:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
// assuming a is an Integer
// if returning multiple fields, look into using a Tuple
// or specifying the return type as an Object or Object[]
CriteriaQuery<Integer.class> query = criteriaBuilder.createQuery(Integer.class);
Root<B.class> from = query.from(Bean.class);
query.select(from.get("a"))
.where(from.get("a").in(1, 2, 3, 4));
// create query and execute...
...
Вот несколько ссылок, которые дают дополнительные примеры использования in
:
Надеюсь, это поможет!