在JBoss 4.2上使用JPA启用Hibernate二级缓存

时间:2008-09-10 07:32:39

标签: java hibernate jpa caching

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

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

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

还需要什么?我是否需要将 @Cache 注释添加到我的JPA实体?

如何判断缓存是否正常?我在运行查询后尝试访问缓存统计信息,但 Statistics.getSecondLevelCacheStatistics 返回null,可能是因为我不知道要使用哪个'region'名称。

2 个答案:

答案 0 :(得分:4)

跟进:最后,在添加注释之后,我让它使用EhCache,即

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

答案 1 :(得分:3)

我相信你需要添加缓存注释来告诉hibernate如何使用二级缓存(只读,读写等)。这是我的应用程序中的情况(使用弹簧/传统的休眠和ehcache,所以你的里程可能会有所不同)。一旦指示了缓存,我就开始看到它们正在从休眠中使用的消息。