JPA Criteria构建器IN子句查询 [英] JPA Criteria builder IN clause query
本文介绍了JPA Criteria构建器IN子句查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何为下面给出的JPQL查询编写条件构建器api查询?
我正在使用 JPA 2.2
。
How to write criteria builder api query for below given JPQL query?
I am using JPA 2.2
.
SELECT *
FROM Employee e
WHERE e.Parent IN ('John','Raj')
ORDER BY e.Parent
推荐答案
这个标准设置应该可以解决问题:
This criteria set-up should do the trick:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Employee> q = cb.createQuery(Employee.class);
Root<Employee> root = q.from(Employee.class);
q.select(root);
List<String> parentList = Arrays.asList(new String[]{"John", "Raj"});
Expression<String> parentExpression = root.get(Employee_.Parent);
Predicate parentPredicate = parentExpression.in(parentList);
q.where(parentPredicate);
q.orderBy(cb.asc(root.get(Employee_.Parent));
q.getResultList();
我在这里使用了重载的 CriteriaQuery.where
方法,该方法接受 Predicate 在这种情况下,code> ..
in
谓词。
I have used the overloaded CriteriaQuery.where
method here which accepts a Predicate
.. an in
predicate in this case.
这篇关于JPA Criteria构建器IN子句查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文