RMo*_*sey 19 caching hibernate terracotta ehcache
我正在配置我的hibernate项目以使用二级缓存提供程序,以便我可以利用查询缓存.
我在ehcache中添加了一个依赖项:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我认为我想要使用的提供程序类是:
net.sf.ehcache.hibernateEhCacheProvider
Run Code Online (Sandbox Code Playgroud)
当我在eclipse中查看引用的库时,我会看到@Deprecated注释EhCacheProvider,同时也会看到注释SingletonEhCacheProvider.是什么赋予了?我可以使用最新的替代供应商吗?
我正在使用hibernate版本3.4.0.GA,以防万一.
Pas*_*ent 46
是什么赋予了?我可以使用最新的替代供应商吗?
它们已经被弃用,有利于实现新的Hibernate 3.3/3.5 SPI的类CacheRegionFactory.这些实现分别是:
net.sf.ehcache.hibernate.EhCacheRegionFactorynet.sf.ehcache.hibernate.SingletonEhCacheRegionFactory新SPI的好处包括:
- SPI删除了Hibernate缓存管道中的同步.它取决于如何控制并发访问的缓存实现.从1.6开始,Ehcache删除了同步化以支持CAS方法.对于繁重的工作负载,结果令人印象深刻.
- 新的SPI提供了对缓存区域存储和缓存策略的更精细控制.Ehcache 2.0利用这一点来减少内存使用.它提供只读,非严格读写和读写策略,所有集群都安全.
- Ehcache 2.0很容易与Terracotta Server Array一起分发.这为您提供了群集安全操作(一致性),HA和超出进程内缓存限制的扩展,这是大多数Hibernate用户今天使用Ehcache的方式.现有的ehcache.jar和ehcache-terracotta.jar提供了客户端库.(......)
因此,我们鼓励您使用新的实现.配置通过以下属性完成:
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory
</property>
Run Code Online (Sandbox Code Playgroud)
这取代了hibernate.cache.provider_class财产.
Mil*_*sić 16
如果你想使用Hibernate 4.0.0.Final.对于hibernate.cache.region.factory_class属性的值,使用:
org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory而不是net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory和 org.hibernate.cache.ehcache.EhCacheRegionFactory 代替 net.sf.ehcache.hibernate.EhCacheRegionFactory否则,您将最终得到一些内部ClassNotFound异常
EhCache 2 现在已弃用并停止使用。您应该改用 EhCache 3。在 5.3 之后的 Hibernate 版本中,建议使用 JSR-107 (JCache)。为此,需要 2 个依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jcache</artifactId>
<version>your_hibernate_version</version>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.6.3</version>
<scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
第一个提供符合 Hibernate 的 JSR-107 API。第二个是实际的缓存实现 - EhCache 3。
还RegionFactory必须使用new :
hibernate.cache.region.factory_class=org.hibernate.cache.jcache.JCacheRegionFactory
Run Code Online (Sandbox Code Playgroud)
该的Ehcache文档说,从休眠3.3起,你应该使用:
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.EhCacheRegionFactory
</property>
Run Code Online (Sandbox Code Playgroud)
(或net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory)
| 归档时间: |
|
| 查看次数: |
23738 次 |
| 最近记录: |