[英]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.