Apache Jena SDB 事务支持

Apache Jena SDB Transactions support

我在 SQL 数据库(微软 sql 服务器)上使用 Apache Jena Api 作为 JENA SDB 当我想以交易方式访问数据库时遇到问题。 当我使用 Jena TDB 时支持事务但是当我以 stransactinal 方式使用 JENA TDB 时 java.lang.UnsupportedOperationException:不支持交易 我抛出异常。

Jena TDB 的片段如下:

Dataset dataset =  return TDBFactory.createDataset("datasetLocation");
dataset.begin(ReadWrite.WRITE);
//...

来自 Jena SDB 的代码段无法正常工作,如下所示:

   StoreDesc storeDesc = new StoreDesc(LayoutType.LayoutTripleNodesHash, 
   DatabaseType.SQLServer);
   SDBConnection sdbConn = new SDBConnection(getConnection());
   Store store = StoreFactory.create(storeDesc, sdbConn);
   Dataset dataset =DatasetStore.create(store);
   dataset.begin(ReadWrite.WRITE);
   //...this throws the exception

我的问题是因为我的要求是从 TDB 迁移到 SDB(我知道不推荐这样做) 有没有办法以事务方式使用 Jena SDB

它始终是事务性的 - 默认情况下,它是自动提交,这可能非常昂贵。

您可以直接操作 JDBC 连接设置,或使用任何模型的 TransactionHandler,因为同一数据集的所有模型都映射到相同的代码以作用于 JDBC 连接,也可用作:

Store.getConnection().getTransactionHandler()