2016-02-15 2 views
0

У меня есть одна процедуры в базе данных она возвращает список объектов, когда я пытаюсь перебирать этот результат я получаю только один ряд множественным times.it не Понтинг к следующей записи в цикле,хранимой процедуры в 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 

, но при выполнении той же процедуры в выходной тузд, как

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

кто может предложить мне

+4

JPA 2.1 имеет специальный API для хранимой процедуры, так что вы не взломать метод «родной запрос». Может быть, вы должны попробовать это –

+0

любой пример кода для вызова хранимой процедуры jpa –

+1

Почему бы вам просто не использовать поиск в Интернете для документации JPA2.1? –

ответ

0

Вам не нужно/должны вызывать хранимые процедуры из метода «createNativeQuery», потому что JPA 2.1 поддерживает их сейчас. Проверьте следующий код:

Хранится prodcedure (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(); 
Смежные вопросы