JPA JPQL簡介
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)
- 此方法分配要檢索的最大結果數。