在同一个Xodus环境中混合商店

时间:2017-04-19 14:21:43

标签: xodus

是否可以在同一个Environment实例中使​​用PersistentEntityStore和一个或多个普通的Store实例?我希望使用涵盖这种组合变化的交易。 我发现我必须避免与商店名称的潜在冲突。还有什么吗?

1 个答案:

答案 0 :(得分:0)

可以在单个事务中使用不同的API层混合代码。唯一的要求是应该隔离不同API触及的数据,应该使用Stores的不相交的名称集。

Stores使用的PersistentEntityStore名称是什么?任何PersistentEntityStore都有自己唯一的名称,所有Stores的名称代表实体存储到键/值层的映射,以"${PersistentEntityStore name}."开头,因为它在{{{ 3}}

另一个问题是这种方法的API不完整。在针对StoreTransaction创建PersistentEntityStore后,应将其转换为PersistentStoreTransaction,以便调用PersistentStoreTransaction#getEnvironmentTransaction()获取基础交易:

final StoreTransaction txn = entityStore.beginTransaction();
// here is underlying Transaction instance:
final Transaction envTxn = ((PersistentStoreTransaction) txn).getEnvironmentTransaction();