如何在Hibernate 4.1.5 SP1中配置二级缓存?

MrS*_*ack 6 hibernate second-level-cache hibernate-4.x

我已经在这里阅读了关于这个主题的其他主题,但没有一个解决方案适合我.

我尝试将它放在我的hibernate.cfg.xml中:

<property name="hibernate.cache.region.factory_class">org.hibernate.cache.spi.EntityRegion</property>
Run Code Online (Sandbox Code Playgroud)

我总是得到这个错误: 无法实例化RegionFactory [org.hibernate.cache.spi.EntityRegion]

我也从Hibernate网站上的线程尝试了大多数建议,但没有运气.

那我该怎么配置呢?

MrS*_*ack 12

好吧,我找到了答案(来自Youtube用户):

  1. 使用hibernate-release-4.1.0.Final或更高版本.
  2. 从lib\optional\ehcache目录添加jar
  3. 更新hibernate.cfg.xml:

    <property name="cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</property>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 由于ClassNotFoundException,添加了slf4j-api-1.6.1.jar(我在ehcache.org另外下载的ehcache-2.5.1-distribution.tar.gz中找到了它).

  5. 将其添加到您的hibernate.cfg.xml:

    <!-- Enable Hibernate's automatic session context management -->
    <property name="cache.use_second_level_cache">true</property>
    
    Run Code Online (Sandbox Code Playgroud)

这里的关键点是从Hibernate4中的可选\目录添加ehcache jar.