我正在使用Apache Jena Api over SQL数据库(Micrtosoft server),称为JENA SDB,当我想以交互方式访问数据库时,我有问题。当我使用Jena TDB时,事务是受支持的,但是当我以透明的方式使用JENA TDB时,java.lang.UnsupportedOperationException: transactions not supported抛出了异常。
来自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
发布于 2017-08-19 01:39:48
它总是事务性的-默认情况下,它是自动提交的,这可能是非常昂贵的。
您可以直接操作JDBC连接设置,也可以使用任何模型的TransactionHandler,因为同一数据集的所有模型都映射到相同的代码以作用于JDBC连接,JDBC连接也可以使用:
Store.getConnection().getTransactionHandler()
https://stackoverflow.com/questions/45758595
复制相似问题