Java大量的事务对象缓存

gpa*_*gpa 2 java caching

我正在寻找在内存中缓存大量简单事务pojo结构的最佳解决方案.通过外部应用程序在3-4个表的oracle数据库上进行事务.另一个应用程序是一种商业智能类型,它基于数据库中的事务来评估更新的pojos(映射到表)并应用各种业务规则.

Hibernate解决方案依赖于同一服务器上的事务; 在我们的情况下,事务发生在其他地方,并且不确定可以查询缓存的对象.

题:

  1. 是否有oracle jdbc API会在java端触发更新事件?
  2. 哪种缓存解决方案支持#1,
  3. 是否可以查询缓存对象?

npg*_*all 7

Oracle数据库支持Java触发器,因此理论上您可以自己实现这样的功能,请参阅本指南.理论上,您的Java触发器可以调用您正在使用的任何分布式缓存解决方案的客户端库,以更新或逐出旧的条目.

Oracle也有自己的缓存解决方案,称为Coherence.它可能具有内置的集成,或者至少可能值得检查它.为某些替代方案搜索"java distributed cache".

据我所知,Hibernate不支持查询存储在其缓存中的对象.

但是,如果分别缓存整个对象集合,那么有一些库允许您对这些集合执行类似SQL的查询:

  • LambdaJ - 支持高级查询,而不是那么快
  • CQEngine - 支持典型查询,速度极快

BTW我是CQEngine的作者.我喜欢这两个库.但请原谅我对自己的轻微偏见:)