问题描述
RocksJavaAPI 是否支持事务?我看到 JAR 中有一个 Transaction DB 类。我无法在事务 Db 类上执行开始事务。
RocksDB db = TransactionDB.open(options,"/Users/jagannathan/Desktop/My Files/db/rocksdb")
我无法执行 db.beginTransaction,因为此类方法不可用。任何有关如何在 Java 中完成的指针表示赞赏。
解决方法
您需要使用不同的打开方法。您当前使用的是基类 (RocksDB) 的 open 方法。
使用:
public static TransactionDB open(Options options,TransactionDBOptions transactionDbOptions,java.lang.String path)
或
public static TransactionDB open(DBOptions dbOptions,java.lang.String path,java.util.List<ColumnFamilyDescriptor> columnFamilyDescriptors,java.util.List<ColumnFamilyHandle> columnFamilyHandles)
获取一个 TransactionDB 对象。然后您可以使用此对象调用 #beginTransaction
,它将返回一个 Transaction 对象。然后可以像 RocksDB 一样使用此事务,您可以在其中放置、删除等,并在完成后提交。