我正在运行示例应用程序,将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>
任何机构都可以告诉我们,我们是否需要这方面的任何配置。
答案 0 :(得分:0)
您确定会话工厂在两次连续的单元测试运行之间没有被丢弃吗?
这实际上取决于您的单元测试配置,但理论上说您应该单独运行每个测试,因为它们不能保证以任何特定顺序运行。
您可以在同一单元测试中测试二级缓存,您需要确保测试不是@Transactional,并且您可以两次@Transactional服务/ dao。
在第一个Transaction中它应该命中数据库,它将被加载到第一级和第二级缓存中。
在第二个中,你有一个新的Session,但该实体应该在二级缓存中可用。