在不关闭 ResultSet 的情况下关闭 Jena QueryEngineHTTP

Closing Jena QueryEngineHTTP without closing the ResultSet

我正在使用 Apache Jena 2.12.0 查询 SPARQL 端点。我想在使用后关闭我的 QueryEngineHTTP 对象,但以下代码将导致无法使用的结果集,因为它与 QueryEngineHTTP 一起关闭。有没有办法关闭一个,而不关闭另一个?

public ResultSet select(String query)
{
    try(QueryEngineHTTP qe = new QueryEngineHTTP(ENDPOINT, query))
 {
        return qe.execSelect();
 } catch(Exception e) {throw new RuntimeException("Error on query:\n"+query,e);}
}

如果您想从传入流中分离结果,您需要创建一个不受传入数据驱动的结果集 - 即复制一份。

ResultSetFactory.copyResults 会为您做到这一点。此结果集是可倒带的。