鍍金池/ 教程/ Java/ JPA標(biāo)準(zhǔn)API簡介
JPA JPQL簡介
JPA JPQL批量數(shù)據(jù)操作
JPA JPQL基本操作
JPA多對(duì)一映射
JPA標(biāo)準(zhǔn)ORDER BY子句
JPA插入實(shí)體
JPA實(shí)體簡介
JPA列表映射
JPA教程
JPA對(duì)象關(guān)系映射
JPA標(biāo)準(zhǔn)WHERE子句
JPA 集合(Set)映射
JPA集合映射
JPA繼承-按類表策略
JPA標(biāo)準(zhǔn)API簡介
JPA創(chuàng)建實(shí)體
JPA標(biāo)準(zhǔn)Having子句
JPA Map映射
JPA更新實(shí)體
JPA查找實(shí)體
JPA JPQL高級(jí)操作
JPA簡介
JPA刪除實(shí)體
JPA繼承-連接策略
JPA繼承-單表策略
JPA一對(duì)多映射
JPA級(jí)聯(lián)操作
JPA一對(duì)一映射
JPA級(jí)聯(lián)刪除
JPA多對(duì)多映射
JPA繼承簡介
JPA標(biāo)準(zhǔn)GROUP BY子句
JPA級(jí)聯(lián)持久化
JPA安裝
JPA標(biāo)準(zhǔn)SELECT子句

JPA標(biāo)準(zhǔn)API簡介

標(biāo)準(zhǔn)(Criteria)API是構(gòu)建實(shí)體及其持久狀態(tài)查詢的最常用方法之一。 它只是定義JPA查詢的另一種方法。

Criteria API定義了一個(gè)獨(dú)立于平臺(tái)的條件查詢,用Java編程語言編寫。 它是在JPA 2.0中引入的。 這背后的主要目的是提供一種類型安全的方式來表達(dá)查詢。

創(chuàng)建條件查詢的步驟

要?jiǎng)?chuàng)建標(biāo)準(zhǔn)查詢,請(qǐng)按照以下步驟操作: -

第1步: 通過在EntityManager接口實(shí)例上調(diào)用getCriteriaBuilder()方法創(chuàng)建CriteriaBuilder接口的對(duì)象。

EntityManager em = emf.createEntityManager();  
CriteriaBuilder cb=em.getCriteriaBuilder();

第2步: 構(gòu)建一個(gè)CriteriaQuery接口的實(shí)例來創(chuàng)建一個(gè)查詢對(duì)象。

CriteriaQuery<StudentEntity> cq=cb.createQuery(StudentEntity.class);

第3步:CriteriaQuery對(duì)象的方法調(diào)用來設(shè)置查詢根。

Root<StudentEntity> stud=cq.from(StudentEntity.class);

第4步: 調(diào)用CriteriaQuery對(duì)象的select()方法來指定查詢結(jié)果的類型。

CriteriaQuery<StudentEntity> select = cq.select(stud);

第5步: 創(chuàng)建Query接口的實(shí)例并指定用于訪問數(shù)據(jù)庫記錄的方法的類型。

Query q = em.createQuery(select);

第6步: 通過調(diào)用查詢接口的方法來控制查詢的執(zhí)行。

List<StudentEntity> list = q.getResultList();

標(biāo)準(zhǔn)API查詢子句的方法

以下是相應(yīng)接口和方法的子句列表。

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

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