2008-09-10 67 views
7

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

从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,可能是因为我不知道要使用哪个“区域”名称。

回答

3

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

4

后续:最后,添加注释后,我有它的Ehcache工作,即

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

注意,在休眠3.3+,这个参数是现在hibernate.cache.region.factory_class而不是以上是什么。添加这为后代;) – 2011-01-05 20:42:02

相关问题