尝试使用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
非常感谢任何想法。
由于
答案 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