EJB 3中的Criteria查询

use*_*371 5 java jpa criteria java-ee ejb-3.0

我可以对EJB3实体使用Criteria查询吗?如果是这样,我如何将它们与EntityManager组合?

Jac*_*k S 7

JPA 2.0中引入的新功能之一是Criteria API.您需要一个JPA2实现:

Criteria查询通过EntityManager.getCriteriaBuilder()访问,并通过普通的Query API执行.

EntityManager em = ...;
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Employee> query = qb.createQuery(Employee.class);
Root<Employee> employee = query.from(Employee.class);
query.where(qb.equal(employee.get("firstName"), "Bob"));
List<Employee> result = em.createQuery(query).getResultList();
Run Code Online (Sandbox Code Playgroud)


Pas*_*ent 0

JPA 不提供像 Hibernate 中那样的 Criteria API。但是您可以使用ejb3criteria,它是一个库,它为 EJB3 持久性提供基于 Hibernate Criteria API 设计的 API。ejb3criteria 可以与任何 EJB3 持久性实现一起使用。