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