java - 如何存储从 Postgres 存储函数返回的数据

标签 java hsqldb

我当前正在调用如下存储函数:

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);

        }

我收到异常:org.hibernate.exception.SQLGrammarException:用户缺乏权限或未找到对象:MY_FUNCTION()

最佳答案

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);
}

关于java - 如何存储从 Postgres 存储函数返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27991035/

相关文章:

java - 如何通过 Play! 中的请求启动后台线程!框架?

java - Android SQLite游标返回33个结果,但调试仅输出17个

Java:如何忽略具有 null 的字段并仅通过修改后的属性传递

java - HSQLDB 文件模式的快速切换替代方案(我现在需要并发访问)

java - HSQLDB View (INNER-JOIN)在运行时出现故障

java - 有没有办法让 javaFX 图表中的特定数据始终具有相同的颜色?

java - @Temporal(TemporalType.DATE) 与 Oracle 12

hsqldb - 索引 HSQLDB?

java - HSQL 中的 GenericJDBCException

java - 为什么以下使用来自 commons.dbcp 的池连接的简单 Java 代码会阻塞?