2

如何实现 Infinispan JPA 缓存加载器?在 infinispan API 中是否有任何模式或方法来实现它?

4

1 回答 1

2

Infinispan 中大多数现有的 CacheLoader 实现都假设数据只需要存储,并盲目地将其视为字节数组。Infinispan 中的集成 API 除了“store(Key,Value)”或“load(Key)”之外没有公开太多上下文。我有点过于简单化了,但这就是核心。

有一个例外是LuceneCacheLoader。这被设计为专门与Infinispan 的 Lucene 目录结合使用,因为它利用了这一事实

  • 它知道期望哪些类型
  • 利用目录的已知需求(例如访问模式)

查看资源以获取灵感;注意我只实现了加载(它是一个 CacheLoader)。

如果您使用 Infinispan 和 CacheLoader 同时控制应用程序,您也可以利用这些细节。

棘手的方面:

  • 即使在同一个事务中写入多个键,您也可以在 CacheLoader 逻辑范围内一次访问一个条目 -> 难以映射关系:必须一次处理一个实体并“恢复连接”
  • 后面写你可能会收到乱序的条目->不确定如何处理引用完整性
  • 后面写你不会有相同的事务上下文 - >可能是可以接受的吗?

考虑到这些,我相信你可以写一个。多么容易?这取决于您的应用程序。

我不确定通用解决方案是否可行。如果你发现它可以,请贡献它,因为这将是对项目的一个很好的补充。

于 2012-10-06T17:21:22.260 回答