首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

JPA 2.0 四大新特性詳解(三):標準化 Criteria API 與元模型

     編輯:J2EE

以物件導向方式構建型別安全查詢

JPA 2.0 引入標準化 Criteria API,等價於面向物件的 JPQL,讓開發者以物件導向方法建構查詢,避免字串操作。API 基於元模型,提供架構層級的中繼資料,支援強型別查詢與持久化單元邏輯結構瀏覽。

元模型與靜態類別

註解處理器可依元模型生成靜態元模型類別(如 Employee_ 對應 Employee 實體),包含持久化狀態與關聯屬性。開發者也可手動編寫。

四種使用方式

  1. 靜態使用元模型類別
  2. 靜態使用字串
  3. 動態使用元模型
  4. 動態使用字串

核心 API 流程

  1. 取得 CriteriaBuilder:em.getCriteriaBuilder()
  2. 建立 CriteriaQuery<T>:cb.createQuery(Employee.class)
  3. 指定查詢來源 Root<T>:cq.from(Employee.class)
  4. 構建查詢表達式(select、where)
  5. 執行查詢:em.createQuery(cq).getResultList()

程式碼範例(靜態元模型)

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Employee> cq = cb.createQuery(Employee.class);
Root<Employee> emp = cq.from(Employee.class);
cq.select(emp);
cq.where(cb.equal(emp.get(Employee_.lastName), "Smith"));
List<Employee> rows = em.createQuery(cq).getResultList();

動態版本透過 emp.getModel() 取得 EntityType,再用 getSingularAttribute 導航。字串版本雖簡便但失去型別安全。TypedQuery 為 JPA 2.0 新介面,感知回傳型別。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved