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

上一篇: JPA級聯刪除 下一篇: JPA JPQL基本操作