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()
我在 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()