簡體   English   中英

JPA中的存儲過程

[英]Stored procedure in JPA

我在數據庫中有一個過程,當我嘗試迭代該結果時,它會返回對象列表,而我只會多次獲得一行。它不響應循環中的下一條記錄,

這是我的代碼,

Query nativeQuery = entityManager.createNativeQuery("call getdata(?, ?, ?, ?)", Detail.class); 
List<Detail>  paymentAnalysisDetails=nativeQuery.getResultList();
for( Detail Details : paymentAnalysisDetails) {
    System.out.println(Details.getStart_date());
}

我得到輸出::

 start_date   end_date   total_no_of_txns 
 2015-01-01  2015-01-30                10 
 2015-01-01  2015-01-30                10 

但是在mysql輸出中執行相同的過程時

start_date  end_date    total_no_of_txns
2015-01-01  2015-01-30  10
2015-02-01  2015-02-30  200

誰能建議我

您不需要/不必通過'createNativeQuery'方法調用存儲過程,因為JPA 2.1現在支持它們。 查看以下代碼:

存儲過程(MySQL):

DELIMITER $$
  CREATE PROCEDURE sp_getUsers(inputAge INT)
  BEGIN
    SELECT u.* FROM usertable u WHERE u.age >= inputAge;
  END;
$$

JPA調用:

int age = 10;

StoredProcedureQuery query = em.createStoredProcedureQuery("sp_getUsers", Usertable.class)
.registerStoredProcedureParameter("inputAge", Integer.class, ParameterMode.IN)
.setParameter("inputAge", age);

List<Usertable> userList = query.getResultList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM