Java HIbernate 3.5.1-我可以直接访问EHCache 2.0.1吗?
我正在使用Hibernate 3.5.1,它附带了EHCache 1.5 如果我想使用最新的EHCache版本(2.0.1),是否只是从我的项目中删除EHCache-1.5.jar并替换为EHCache-core-2.0.1.jar?有什么需要注意的问题吗 另外-Hibernate映射文件中的缓存“区域”是否与ehcache配置xml中的缓存“名称”相同?我要做的是定义两个命名缓存区域——一个用于不会更改的只读引用实体(查找列表等),另一个用于所有其他实体。所以在ehcache中,我想定义两个元素Java HIbernate 3.5.1-我可以直接访问EHCache 2.0.1吗?,java,hibernate,orm,ehcache,Java,Hibernate,Orm,Ehcache,我正在使用Hibernate 3.5.1,它附带了EHCache 1.5 如果我想使用最新的EHCache版本(2.0.1),是否只是从我的项目中删除EHCache-1.5.jar并替换为EHCache-core-2.0.1.jar?有什么需要注意的问题吗 另外-Hibernate映射文件中的缓存“区域”是否与ehcache配置xml中的缓存“名称”相同?我要做的是定义两个命名缓存区域——一个用于不会更改的只读引用实体(查找列表等),另一个用于所有其他实体。所以在ehcache中,我想定义两个元
<cache name="readonly"> ... </cache>
<cache name="mutable"> ... </cache>
。。。
...
然后在我的Hibernate映射文件中,我将为每个实体指定要使用的缓存:
<hibernate-mapping>
<class name="lookuplist">
<cache region="readonly" usage="read-only"/>
<property> ... </property>
</class>
</hibernate-mapping>
...
这样行吗?一些文档似乎暗示为每个映射类创建一个单独的区域/缓存
谢谢
如果我想使用最新的EHCache版本(2.0.1),是否只是从我的项目中删除EHCache-1.5.jar并替换为EHCache-core-2.0.1.jar?有什么需要注意的问题吗
根据关于使用Ehcache-as的Ecache文档,您确实需要使用ehache-core.jar,但也需要进行更改
另外-Hibernate映射文件中的缓存“区域”是否与ehcache配置xml中的缓存“名称”相同
对。同样,请参阅文档,在中对此进行了解释
这样行吗?一些文档似乎暗示为每个映射类创建单独的区域/缓存
文档并没有暗示,它是白纸黑字写的,因为这是默认值:
region (optional: defaults to the class or collection role name): specifies the
name of the second level cache region
行吗?从技术上讲,是的。这是个好主意吗?我不确定。最好在Hibernate和Ehcache级别都有更细粒度的区域(特别是如果您计划使用分布式缓存和失效策略,您当然不想使所有实体失效)。我会使用Hibernate的默认值。我也有同样的问题,
如果您使用的是maven
最好防止hibernate自行下载ehcache,并提供ehcache条目
i、 e
org.hibernate
冬眠
3.2.6.ga
net.sf.ehcache
ehcache
这样,它就不会下载内部ehcache,在我的情况下,它是版本1.2.3
然后把
<dependency>
<groupId>net.sf</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.2</version>
</dependency>
net.sf
ehcache内核
2.4.2
在POM.xml中
它应该会起作用
<dependency>
<groupId>net.sf</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.2</version>
</dependency>