JPQL(Java持久性查詢語言)是一種面向對象的查詢語言,用於對持久實體執行數據庫操作。 JPQL不使用資料庫表,而是使用實體對象模型來操作SQL查詢。 這裏,JPA的作用是將JPQL轉換為SQL。因此,它為開發人員提供了一個處理SQL任務的簡單方式。
JPQL是實體JavaBeans查詢語言(EJBQL)的擴展,向其添加了以下重要功能 -
- 它可以執行連接操作。
- 它可以批量更新和刪除數據。
- 它可以使用排序和分組子句執行聚合函數。
- 單值和多值結果類型。
JPQL功能特性
- 它是一種獨立於平臺的查詢語言。
- 它簡單而強大。
- 它可以用於任何類型的資料庫,如:MySQL,Oracle。
- JPQL查詢可以靜態地聲明為元數據,也可以動態構建在代碼中。
在JPQL中創建查詢
JPQL提供了兩種可用於訪問資料庫記錄的方法。 這些方法是 -
-Query createQuery(String name)
- EntityManager介面的createQuery()
方法用於創建一個用於執行JPQL語句的Query介面實例。
Query query = em.createQuery("Select s.s_name from StudentEntity s");
此方法創建可在業務邏輯中定義的動態查詢。
Query createNamedQuery(String name)
- EntityManager介面的createNamedQuery()
方法用於創建用於執行命名查詢的Query介面實例。
此方法用於創建可以在實體類中定義的靜態查詢。@NamedQuery(name = "find name" , query = "Select s from StudentEntity s")
現在,可以通過以下Query介面方法來控制查詢的執行 -
int executeUpdate()
- 此方法執行更新和刪除操作。int getFirstResult()
- 此方法返回查詢對象設置為檢索的第一個定位結果。int getMaxResults()
- 此方法返回查詢對象設置為檢索的最大結果數。java.util.List getResultList()
- 此方法返回結果列表作為非類型化列表。Query setFirstResult(int startPosition)
- 此方法分配要檢索的第一個結果的位置。Query setMaxResults(int maxResult)
- 此方法分配要檢索的最大結果數。
上一篇:
JPA級聯刪除
下一篇:
JPA JPQL基本操作