关于Java:在JBoss 4.2上使用JPA启用Hibernate二级缓存

关于Java:在JBoss 4.2上使用JPA启用Hibernate二级缓存

Enabling Hibernate second-level cache with JPA on JBoss 4.2

使用Java Persistence API(带注释的实体)时,启用Hibernate的二级缓存需要采取哪些步骤? 我如何检查它是否正常工作? 我正在使用JBoss4.2.2.GA。

从Hibernate文档中,我似乎需要启用缓存并在persistence.xml中指定一个缓存提供程序,例如:

1
2
3
4
<property name="hibernate.cache.use_second_level_cache"
          value="true" />
<property name="hibernate.cache.provider_class"
          value="org.hibernate.cache.HashtableCacheProvider" />

还需要什么? 我是否需要在JPA实体中添加@Cache注释?

如何判断缓存是否正常工作? 我已尝试在运行Query之后尝试访问缓存统计信息,但是Statistics.getSecondLevelCacheStatistics返回null,这可能是因为我不知道要使用什么"区域"名称。


后续:最后,在添加注释后,我将其与EhCache配合使用,即

1
2
<property name="hibernate.cache.provider_class"
          value="net.sf.ehcache.hibernate.EhCacheProvider" />

我相信您需要添加缓存注释以告诉休眠状态如何使用二级缓存(只读,读写等)。 我的应用程序就是这种情况(使用spring /传统的休眠模式和ehcache,因此您的工作量可能会有所不同)。 指示了缓存后,我开始从休眠状态看到它们正在使用的消息。


推荐阅读