JPA存储过程:hasMoreResults多次调用

JPA存储过程:hasMoreResults多次调用,jpa,stored-procedures,Jpa,Stored Procedures,JPA存储过程查询: hasMoreResults() 会转到下一个结果吗?或者它可以被称为许多没有任何效果的结果?简而言之,它没有说,所以你不能依赖它 事实上,在调用时确实会提前输出指针: @Override public boolean hasMoreResults() { return outputs().goToNext() && ResultSetOutput.class.isInstance( outputs().getCurrent() ); } 启用

JPA存储过程查询:

hasMoreResults() 
会转到下一个结果吗?或者它可以被称为许多没有任何效果的结果?

简而言之,它没有说,所以你不能依赖它

事实上,在调用时确实会提前输出指针:

@Override
public boolean hasMoreResults() {
    return outputs().goToNext() && ResultSetOutput.class.isInstance( outputs().getCurrent() );
}

启用时,
hasMoreResults
是一个私有字段,在操作访问结果集时更新。因此调用
hasMoreResults()
没有副作用。

Javadoc说如果有更多的话返回。它没有说提前,所以你不能假设。通过调用
getResultList
可以获得下一个结果。调用getMoreResult()时,JDBC始终前进到下一个结果。我在JDBC中找不到其他方法来检查是否有更多的结果而不前进到下一个。JPA依赖于JDBC.and?这不是JDBC。没有
getMoreResults
方法。对多个结果集的处理有充分的文档记录,但迭代所有结果集的方式是不正确的。hasMoreResults()对于更新计数返回false。因此,如果更新计数介于两个结果集之间,循环将无法获得第二个结果集。链接的文档完全正确,并且确实在所有使用的存储过程中工作。JDBC以相同的方式工作,JPA依赖于此。你知道另一件事吗。比如日食?