2015-01-16 1 views
1

Я в настоящее время вызов хранимой функции, как следующее:Как хранить данные, которые я получить обратно из Postgres хранящимся функция

SQLQuery query = session.createSQLQuery(my_function()) 

эта функция возвращает таблицу:

RETURNS TABLE(
     userid   BIGINT, 
     user_height DOUBLE PRECISION 
    ) 

Как я захватить два столбца и сохранить их в 2 списка массивов?

Я пробовал:

List<Object[]> data= query.list(); 
     List<Long> result= newArrayList(); 

     for (Object[] each: data) 
     { 
      Long userId= (Long) point[0]; 
      result.add(userId); 

     } 

Я получил exception: org.hibernate.exception.SQLGrammarException: user lacks privilege or object not found: MY_FUNCTION()

ответ

0

CALL хранимой процедуры и отображения результатов к классу объектов, как в этом примере:

class UserHeight 
{ 
    public long userid; 
    public double user_height; 
} 

Query query = session.createSQLQuery("CALL my_function()") 
    .addEntity(UserHeight.class); 

List result = query.list(); 
for(int i=0; i<result.size(); i++){ 
    UserHeight height = (UserHeight)result.get(i); 
    System.out.println(height.height); 
} 
+0

Hi gknicker, Я попробовал это, но получил ошибку Неизвестного объекта. Я создал класс с этими двумя полями. Пометили его @ Entity и @ Table и создали таблицу в базе данных. – JohnnyGnomez

 Смежные вопросы

  • Нет связанных вопросов^_^