使用HTTPRepository在Sesame中添加语句

时间:2010-05-26 18:53:29

标签: add sesame

我正在尝试向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为空。

任何人都有任何想法可能导致这个?提前谢谢!

1 个答案:

答案 0 :(得分:0)

此失败的原因是您使用的是autoCommit = false。在本地设置中,Sesame的事务隔离需要注意即使尚未提交,在查询同一连接时也会看到添加的数据。

但是,HTTPRepository类不支持事务隔离:在您提交之前,添加的三元组不可见。所以,要修复,请添加:

connection.commit(); 
在getStatements()调用之前

你应该没问题。