JPA Criteria API介绍

Criteria API 是为实体及其持久状态构建查询的最常见方法之一。它只是定义 JPA 查询的另一种方法。

Criteria API 定义了一个独立于平台的标准查询,用 Java 编程语言编写。它是在 JPA 2.0 中引入的。这背后的主要目的是提供一种类型安全的方式来表达查询。

创建 Criteria 查询的步骤

要创建 Criteria 查询,请按照以下步骤操作:

  • 通过在EntityManager接口的实例上调用getCriteriaBuilder()方法来创建CriteriaBuilder接口的对象。
EntityManager em = emf.createEntityManager();  
CriteriaBuilder cb=em.getCriteriaBuilder();  
  • 现在,构建CriteriaQuery接口的实例来创建查询对象。
CriteriaQuery<StudentEntity> cq=cb.createQuery(StudentEntity.class);  
  •  从CriteriaQuery对象上的方法调用以设置查询根对象。
Root<StudentEntity> stud=cq.from(StudentEntity.class);  
  •  现在,调用 CriteriaQuery 对象的 select 方法来指定查询结果的类型。
CriteriaQuery<StudentEntity> select = cq.select(stud);  
  •  创建 Query 接口的实例并指定用于访问数据库记录的方法类型
Query q = em.createQuery(select);  
  • 现在,通过调用查询接口的方法来控制查询的执行。
List<StudentEntity> list = q.getResultList();  

 Criteria API 查询子句的方法

以下是具有相应接口和方法的子句列表。

条件 Criteria API接口 方法
SELECT CriteriaQuery select()
FROM AbstractQuery from()
WHERE AbstractQuery where()
ORDER BY CriteriaQuery orderBy()
GROUP BY AbstractQuery groupBy()
HAVING AbstractQuery having()

注意:CriteriaQuery 接口是 AbstractQuery 接口的子接口 

热门文章

优秀文章