启用二级缓存休眠

时间:2018-06-12 13:39:11

标签: hibernate caching

尝试使用hibernate 5.1.5配置二级缓存时,我们遇到以下错误:

Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.spi.support.RegionFactoryTemplate
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_161]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_161]

依赖关系如下:

compile group: 'org.hibernate', name: 'hibernate-ehcache', version: '5.1.5.Final'
compile group: 'org.hibernate', name: 'hibernate-jcache', version: '5.3.1.Final'
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.1.5.Final'

它远远超出了StrategySelectorBuilder,并在调用

时失败
applyFromStrategyRegistration( strategySelector, explicitStrategyRegistration );

其中strategyRole是接口org.hibernate.cache.spi.RegionFactory 和strategyImplementation是类org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory

如果我们将hibernate核心和ehcache版本设置为5.3。*一切都按预期工作。

然而,这不是一个选项,因为我们有一个grails项目需要使用hibernate和gorm; y适用于最高版本5.1.5

非常感谢任何想法。

由于

1 个答案:

答案 0 :(得分:1)

原来问题是当我更改了hibernate的版本时,我忘了更改hibernate-jcache的版本。

以下依赖项正常运行:

JProgressBar bar = new JProgressBar(0,0,10);
add(bar);

bar.setValue(5); //Works - You can visually see the change
bar = new JProgressBar(0,0,10);
bar.setValue(10); //Works - You can NOT visually see the change