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

EJB 3 命名查詢優化 JPQL:@NamedQuery 定義與執行最佳實踐

     編輯:J2EE

EntityManager.createQuery() 執行 JPQL 每次皆需解析分析,影響效能。EJB 3 提供命名查詢:部署時預編譯,類似資料庫預存程序,執行效率更高。

定義:@NamedQuery 註解

可置於任意實體類上方,建議放相關實體類以便管理。範例:Customer 實體定義 @NamedQuery(name="MyQuery", query="select c from Customer c where id=:id"),使用命名參數 :id。

執行:createNamedQuery + setParameter

private Customer queryCustomer(int id) {
    return (Customer) em.createNamedQuery("MyQuery")
                        .setParameter("id", 23)
                        .getSingleResult();
}

在 Session Bean 中調用即可透過命名查詢高效獲取實體。

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