在同一个 Xodus 环境中混合存储
Mixing stores in same Xodus Environment
是否可以在同一环境实例中使用 PersistentEntityStore 和一个或多个普通 Store 实例?我希望使用涵盖此类组合更改的事务。
我看到我必须避免的与商店名称的潜在冲突。还有什么吗?
可以在单个事务中混合使用不同 API 层的代码。唯一的要求是不同 API 接触的数据应该被隔离,应该使用不相交的 Stores
名称集。
PersistentEntityStore
使用的 Stores
的名字是什么?任何 PersistentEntityStore
都有自己唯一的名称,所有 Stores
的名称表示实体存储到 key/value 层的映射,以 "${PersistentEntityStore name}."
开头,因为它在source code.
另一个问题是 API 这种方法并不完整。针对 PersistentEntityStore
创建 StoreTransaction
后,应将其转换为 PersistentStoreTransaction
以便调用 PersistentStoreTransaction#getEnvironmentTransaction()
获取基础交易:
final StoreTransaction txn = entityStore.beginTransaction();
// here is underlying Transaction instance:
final Transaction envTxn = ((PersistentStoreTransaction) txn).getEnvironmentTransaction();
是否可以在同一环境实例中使用 PersistentEntityStore 和一个或多个普通 Store 实例?我希望使用涵盖此类组合更改的事务。 我看到我必须避免的与商店名称的潜在冲突。还有什么吗?
可以在单个事务中混合使用不同 API 层的代码。唯一的要求是不同 API 接触的数据应该被隔离,应该使用不相交的 Stores
名称集。
PersistentEntityStore
使用的 Stores
的名字是什么?任何 PersistentEntityStore
都有自己唯一的名称,所有 Stores
的名称表示实体存储到 key/value 层的映射,以 "${PersistentEntityStore name}."
开头,因为它在source code.
另一个问题是 API 这种方法并不完整。针对 PersistentEntityStore
创建 StoreTransaction
后,应将其转换为 PersistentStoreTransaction
以便调用 PersistentStoreTransaction#getEnvironmentTransaction()
获取基础交易:
final StoreTransaction txn = entityStore.beginTransaction();
// here is underlying Transaction instance:
final Transaction envTxn = ((PersistentStoreTransaction) txn).getEnvironmentTransaction();