我正在将hibernate项目配置为使用第二级缓存提供程序,以便可以利用查询缓存。
我向ehcache添加了一个依赖项:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.2.0</version>
</dependency>
我认为我要使用的提供程序类是:
net.sf.ehcache.hibernateEhCacheProvider
在eclipse中查看引用的库时,我@Deprecated
在EhCacheProvider
和上都看到了注释SingletonEhCacheProvider
。是什么赋予了?我可以使用最新的替代供应商吗?
我正在使用hibernate版本3.4.0.GA,以防万一。
是什么赋予了?我可以使用最新的替代供应商吗?
不推荐使用它们,而赞成使用Hibernate 3.3 / 3.5 SPI实现其类的类CacheRegionFactory
。这些实现分别是:
net.sf.ehcache.hibernate.EhCacheRegionFactory
net.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>
那代替了hibernate.cache.provider_class
财产。
问题内容: 众所周知,Java 中的接口已损坏。造成这种情况的原因很多,我将不再赘述。其他人已经做到了。这也是Java架构师本身的立场。 因此,我的问题是:为什么还不被弃用?如果核心Java团队已确定它已损坏,那么他们还必须考虑过时。他们反对这样做的原因是什么(在Java 8中仍不建议弃用)? 问题答案: 有一个错误在1997年提交给Java的错误数据库有关添加方法,所以将不再是无用的。它以“无法
问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 在这里我已经阅读过有关它的更多信息,不建议使用 http://forum.springsource.org/showthread.php?117227-Missing-Hibernate- Classes-Interfaces-in-spring
问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 有人可以解释我为什么吗?在hibernate4中,我现在需要执行所有任务,例如提交,关闭,刷新由getHibernateTemplate()方法自动管理的事务? 问题答案: 因为它的主要目的是使Hibernate会话绑定到当前的Spring事务(
问题内容: HTML从早期开始就有框架,但是在最新版本中已弃用。许多浏览器(我曾尝试使用Internet Explorer)甚至无法正确显示框架。 为什么要这样做?镜框的缺点是什么? 问题答案: 雅各布·尼尔森(JakobNielsen)在1996年的专栏批评镜框。一些关键点: 框架会阻止用户正确标记页面。加载带有书签的框架集页面时,用户先前在框架内单击鼠标没有关系。仅保存外部URL,用户必须导航
问题内容: 从Guava 10开始,已弃用,并且中没有对应的方法。 为什么要进行此更改?我需要与使用它的现有代码做什么? 问题答案: 我写这个问题的原因是,起初,我确实确实想知道为什么要这么做(因为我已有使用过的代码)。但是,反思的原因很明显,因此我决定将其发布在这里,以防其他人也使用并想知道同一件事。 简而言之,原因是从一开始就没有任何意义。因此,最初包含它本身就是一个错误,Guava开发人员正
问题内容: (此问题不同于您为什么要实现finalize()?此问题与从Java平台弃用有关,另一个问题与在应用程序中是否应使用此机制有关。) 为什么在Java 9中不推荐使用该方法? 是的,它可能以错误的方式使用(例如,从垃圾收集中保存对象(虽然仅一次)或尝试关闭其中的某些本机资源(总比不完全关闭要好))以及许多其他方法可能会被错误地使用。 那么,是真的如此危险或绝对没有用,有必要将其逐出Jav