嗨,我想流式传输一个很大的表spring-data-jdbc。以此目的 我已将连接设置为READ_ONLY,并在我的存储库中声明了一种如下所示的方法:
PackageRepository extends Repository<Package,String> {
Stream<Package> findAll();
}
我在这里的期望是结果集的类型将为FORWARD_ONLY,并且该方法不会无限期地阻塞,直到从数据库中接收到所有结果为止。
在这里,我将与Spring Data JPA进行比较,在这种情况下,Stream方法没有阻塞,并且根据获取的大小分部分地获取数据库的内容。
我错过了一些配置吗?如何使用spring-data-jdbc实现此行为?
更新:我将把问题换成其他形式。如何使用spring-data-jdbs实现以下功能:
template.query(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement statement = con.prepareStatement("select * from MYTABLE with UR",ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
statement.setFetchSize(150000);
return statement;
}
}, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
// do my processing here
}
});