hazelcast-hibernate:缓存没有发生

时间:2014-06-26 16:06:57

标签: java hibernate caching hazelcast

我正在运行示例应用程序,将hibernate二级缓存配置为hazelcast。 为了进行测试,我运行Junit 2次,在第一次运行中,数据库查询被调用,数据库查询在第二次运行Junit时没有出现问题。

<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_minimal_puts">true</prop>
<prop key="hibernate.cache.hazelcast.use_lite_member">true</prop>
<prop key="hibernate.cache.region.factory_class">com.hazelcast.hibernate.HazelcastCacheRegionFactory</prop>

任何机构都可以告诉我们,我们是否需要这方面的任何配置。

1 个答案:

答案 0 :(得分:0)

您确定会话工厂在两次连续的单元测试运行之间没有被丢弃吗?

这实际上取决于您的单元测试配置,但理论上说您应该单独运行每个测试,因为它们不能保证以任何特定顺序运行。

您可以在同一单元测试中测试二级缓存,您需要确保测试不是@Transactional,并且您可以两次@Transactional服务/ dao。

在第一个Transaction中它应该命中数据库,它将被加载到第一级和第二级缓存中。

在第二个中,你有一个新的Session,但该实体应该在二级缓存中可用。