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介面的子介面。