Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HIbernate 3.5.1-我可以直接访问EHCache 2.0.1吗?_Java_Hibernate_Orm_Ehcache - Fatal编程技术网

Java HIbernate 3.5.1-我可以直接访问EHCache 2.0.1吗?

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中,我想定义两个元

我正在使用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>