我使用Apache Jena 2.12.0来查询SPARQL端点。我想在使用后关闭我的QueryEngineHTTP对象,但以下代码将导致不可用的ResultSet,因为它与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
会帮你做的。此结果集是可倒带的。