在Java和JPA中呼叫預存程序
將業務邏輯儲存在儲存過程中可以提高效能和程式碼的可維護性。本文探討了使用JPA從Java呼叫預存程序的兩種方法:CallableStatement方法和JPA 2.1 StoredProcedureQuery。
CallableStatement方法
CallableStatement類別提供了一種呼叫預存程序的多功能方法。它允許您指定輸入參數並檢索輸出參數或結果集。但是,它需要在SQL類型和Java物件之間進行手動映射,這可能很繁瑣。
JPA 2.1 StoredProcedureQuery
JPA 2.1引入了對呼叫預存程序的內建支援。 StoredProcedureQuery類別透過允許您傳遞輸入參數並指定結果類別或resultSetMapping來簡化此過程。
使用JPA StoredProcedureQuery呼叫「getEmployeeDetails」預存程序:
<code class="language-java">Query query = em.createNativeQuery("{call getEmployeeDetails(?,?)}", EmployeeDetails.class) .setParameter(1, employeeId) .setParameter(2, companyId); List<EmployeeDetails> result = query.getResultList();</code>
使用JPA呼叫預存程序的優勢
呼叫預存程序的SQL語句
呼叫預存程序的正確SQL語句是:
<code class="language-sql">{call getEmployeeDetails(?,?)}</code>
注意:將預存程序名稱括在花括號中,並用逗號和問號(?)分隔參數。
其他注意事項:
以上是如何使用JPA呼叫Java中的預存程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!