在 Hibernate 5.2.18中,可以将 hibernate 配置选项hibernate.cache.region.factory_class
设置为类值。这允许我扩展类org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
并为我的集群应用程序实现所需的额外代码。然后可以将此实现的类作为hibernate.cache.region.factory_class
休眠设置中配置的配置值进行引用。
spring-config.xml 中的示例:
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">com.example.MySingletonEhCacheRegionFactory</prop>
实现类:
public class MySingletonEhCacheRegionFactory extends
SingletonEhCacheRegionFactory {
// Implementation
}
我现在正在尝试升级到 5.4.25 版,但是在 5.3.0 版中,SingletonEhCacheRegionFactory 被移动到了一个内部类并且代码被改变了。
最重要的是,hibernate.cache.region.factory_class
配置现在需要类的缩短名称。这在Hibernate 5.4 文档中有说明。
例子:
<prop key="hibernate.cache.region.factory_class">ehcache-singleton</prop>
所以我的问题是:
首先,是否仍然可以SingletonEhcacheRegionFactory
从新位置扩展类org.hibernate.cache.ehcache.internal.SingletonEhcacheRegionFactory
并将我的自定义实现作为缩短值添加到休眠配置?
还是我应该扩展net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory
课程?过去建议在此之上使用其他类(请参见此处),但它没有说明版本 5+。
对于 Hibernate 4,使用 org.hibernate.cache.ehcache.EhCacheRegionFactory 而不是 net.sf.ehcache.hibernate.EhCacheRegionFactory。
其次,我们可以使用缩短的名称在休眠配置中引用我们自己的类吗?
<prop key="hibernate.cache.region.factory_class">myEhcache-singleton</prop>
感谢您对上述内容的任何见解!