JPA標準API簡介
標準(Criteria)API是構建實體及其持久狀態查詢的最常用方法之一。 它只是定義JPA查詢的另一種方法。
Criteria API定義了一個獨立於平臺的條件查詢,用Java編程語言編寫。 它是在JPA 2.0中引入的。 這背後的主要目的是提供一種類型安全的方式來表達查詢。
創建條件查詢的步驟
要創建標準查詢,請按照以下步驟操作: -
第1步: 通過在EntityManager
接口實例上調用getCriteriaBuilder()
方法創建CriteriaBuilder
接口的對象。
EntityManager em = emf.createEntityManager();
CriteriaBuilder cb=em.getCriteriaBuilder();
第2步: 構建一個CriteriaQuery
接口的實例來創建一個查詢對象。
CriteriaQuery<StudentEntity> cq=cb.createQuery(StudentEntity.class);
第3步: 從CriteriaQuery
對象的方法調用來設置查詢根。
Root<StudentEntity> stud=cq.from(StudentEntity.class);
第4步: 調用CriteriaQuery
對象的select()
方法來指定查詢結果的類型。
CriteriaQuery<StudentEntity> select = cq.select(stud);
第5步: 創建Query
接口的實例並指定用於訪問數據庫記錄的方法的類型。
Query q = em.createQuery(select);
第6步: 通過調用查詢接口的方法來控制查詢的執行。
List<StudentEntity> list = q.getResultList();
標準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
接口的子接口。