我正在使用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);}
}
答案 0 :(得分:2)
如果要从传入流中分离结果,则需要创建一个不受传入数据驱动的结果集 - 即获取副本。
ResultSetFactory.copyResults
会为您做到这一点。此结果集可以重新缓存。