JPA(Java Persistence API)學習十六(標準API介紹)
阿新 • • 發佈:2020-09-09
1.概述
標準(Criteria)API是構建實體及其持久狀態查詢的最常用方法之一。
它只是定義JPA查詢的另一種方法。Criteria API定義了一個獨立於平臺的條件查詢,
用Java程式語言編寫。 它是在JPA 2.0中引入的。 這背後的主要目的是提供一種型別安全的方式來表達查詢。
2.建立條件查詢的步驟 第一步: 通過在
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();
3.標準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
介面的子介面。