我正在尝试向Sesame存储库添加一些简单的语句,如下所示:
RepositoryConnection connection = repository.connection
connection.autoCommit = false
try {
ValueFactory vf = repository.getValueFactory()
def dummyS = vf.createURI("http://some/uri")
def dummyP = vf.createURI("http://some/uri/hasItem")
uris?.each { uri ->
connection.add(listS, listP, vf.createURI(uri))
}
def stmts = connection.getStatements(listS, null, null, true) ...这在使用NativeStore对本地SailRepository执行时效果很好。但是,当连接到托管在不同服务器上的HTTPRepository时,“添加”似乎无声地失败了。没有抛出异常,但返回的stmts为空。
有谁知道这是什么原因造成的吗?提前感谢!
发布于 2010-09-19 23:35:34
失败的原因是您正在使用autoCommit=false。在本地设置中,Sesame的事务隔离注意到,即使在尚未提交的情况下,在同一连接上查询时,添加的数据也是可见的。
但是,HTTPRepository类不支持事务隔离:在提交之前,添加的三元组是不可见的。因此,要修复此问题,请添加:
connection.commit(); 在调用getStatements()之前,您应该会很好。
https://stackoverflow.com/questions/2915829
复制相似问题