Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用spring JPA读取数据+;基于游标的PostgreSql存储过程_Java_Postgresql_Cursor_Spring Data Jpa - Fatal编程技术网

Java 使用spring JPA读取数据+;基于游标的PostgreSql存储过程

Java 使用spring JPA读取数据+;基于游标的PostgreSql存储过程,java,postgresql,cursor,spring-data-jpa,Java,Postgresql,Cursor,Spring Data Jpa,我需要使用PostgreSql中基于游标的存储过程从具有条件的表中读取数据,直到达到所需的数据量为止 我不知道如何从Spring JPA调用这种类型的过程! 我想知道是应该在存储过程中进行循环,直到达到所需的最大行数,然后只调用一次存储过程,还是应该在Spring JPA中多次调用存储过程,直到达到最大行数 非常感谢您的建议和示例。您的proc可以返回一个refcursor,PgJDBC将自动将其转换为可通过语句上的getMoreResults()访问的结果集object@CraigRinger

我需要使用PostgreSql中基于游标的存储过程从具有条件的表中读取数据,直到达到所需的数据量为止

我不知道如何从Spring JPA调用这种类型的过程! 我想知道是应该在存储过程中进行循环,直到达到所需的最大行数,然后只调用一次存储过程,还是应该在Spring JPA中多次调用存储过程,直到达到最大行数


非常感谢您的建议和示例。

您的proc可以返回一个
refcursor
,PgJDBC将自动将其转换为可通过
语句上的
getMoreResults()
访问的结果集object@CraigRinger因此,我应该对语句调用getMoreResults(),直到达到所需的数据量。类似这样的内容:while(条件为true){statement.getResultSet();statement.getMoreResults()};问题是,当我调用getMoreResults()时,它会再次调用DB?不,不是这样的。请参阅API文档。如果返回refcursor not setof refcursor,您甚至可能不需要getMoreResults。关键是getMoreResults是访问多个结果集的方式。编写一个测试程序,查看PgJDBC如何处理refcursor返回。