-
如何使Hibernate中EhCache缓存的Key能够动态设置0
您好!
我现在在Hibernate中用EhCache做缓存,hibernate在对对象操作时自动缓存数据,但是缓存的key为对象的主键,我现在想对这个key在缓存前加上一个标识,因为我想对hibernate进行多schema扩展,所以如果用hibernate自己的缓存策略,相同的对象在schema切换后可能主键相同,那么缓存就会出现问题。求大牛帮忙下。谢谢!
伪代码描述如下:
//前提,Schema1中已经缓存了主键为1的用户信息。
Session session = null;
User user = null;
//1、这里用Schema1创建Session,通过缓存获取主键为1的用户
session = Schema1.sessionFactory.openSession();
user = session.get(1);
session.close();
//2、这里用Schema2创建Session,通过缓存获取主键为1的用户,但是
//拿出来的用户信息却是Schema1中的主键为1的用户信息,所以我想
//在hibernate进行二级缓存时,对缓存key进行操作,添加标识。
session = Schema2.sessionFactory.openSession();
user = session.get(1);
session.close();2012年9月27日 10:35
1个答案 按时间排序 按投票排序
-
采纳的答案
1、hibernate二级缓存默认策略是单SessionFactory的。
2、因此你创建了两个SessionFactory 则两套缓存无关。
3、二级缓存的cache name默认是class的全限定类名;
4、hibernate二级缓存 提供一个region的概念 可以使用region;
http://jinnianshilongnian.iteye.com/blog/15258842012年9月27日 12:56
相关推荐
在Spring和Hibernate集成的开发环境中,使用EhCache作为缓存机制是常见的优化策略,它能够显著提升应用程序的性能和响应速度。EhCache是一款开源的、高性能的、内存级的分布式缓存解决方案,适用于Java应用程序。...
Ehcache允许我们在XML配置文件中定义这些参数,或者在代码中动态设置。此外,Ehcache还支持二级缓存,当一级缓存满时,数据会自动存入二级缓存(如硬盘)。 总结来说,Ehcache是一个强大的Java缓存解决方案,它简化...
1. **内存管理**:EhCache将数据存储在内存中,提供了对缓存大小的限制,可以设置最大缓存容量,以防止过度消耗内存资源。当缓存满时,可以通过LRU(Least Recently Used)或LFU(Least Frequently Used)等淘汰策略...
Ehcache作为Hibernate常用的二级缓存解决方案,能够有效提升系统性能,降低数据库负载。本文将详细讲解如何在Hibernate中整合Ehcache,并探讨其配置和使用方法。 一、Ehcache的集成 1. 引入Ehcache库:首先,我们...
配置Ehcache作为二级缓存提供商,需要在Hibernate的配置文件中设置`hibernate.cache.provider_class`为`net.sf.hibernate.cache.EhCacheProvider`。如果启用查询缓存,还需添加`hibernate.cache.use_query_cache=...
1. 当用 Hibernate 的方式修改表数据(save,update,delete 等等),这时 EhCache 会自动把缓存中关于此表的所有缓存全部删除掉(这样能达到同步)。但 对于数据经常修改的表来说,可能就失去缓存的意义了(不能减轻数据库...
以EhCache为例,我们需要在项目中引入ehcache-core或ehcache的依赖,并在Hibernate配置文件(hibernate.cfg.xml或persistence.xml)中启用二级缓存,添加如下配置: ```xml <property name="hibernate.cache.use_...
**EHCache缓存技术** EHCache是一款高性能、轻量级的Java缓存框架,它广泛应用于各种Java应用程序中,特别是需要提升数据访问速度和减少数据库负载的场景。EHCache是基于内存的,但同时支持持久化,能有效地提高...
2. **配置Hibernate**:在Hibernate的配置文件`hibernate.cfg.xml`中启用二级缓存并指定缓存提供商。以下是一个使用Ehcache的示例: ```xml <property name="hibernate.cache.use_second_level_cache">true ...
Ehcache 提供了本地内存缓存、磁盘存储以及分布式缓存的能力,使得应用程序能够快速访问频繁使用的数据,从而提高整体性能和响应速度。 ### 1. Ehcache 基本概念 - **Cache**: 缓存是存储数据的临时区域,用于快速...
EHcache是一款广泛使用的Java缓存框架,尤其在SSH(Spring、Struts、Hibernate)这样的企业级开发环境中,它能够有效地提升应用的运行效率。本文将详细探讨如何在SSH架构中手动配置和使用EHcache。 首先,我们需要...
Ehcache与Hibernate的二级缓存集成良好,是许多Java项目的首选。相较于Guava Cache和JCS(Java Caching System),Ehcache提供了更丰富的特性,如分布式缓存、磁盘存储和更完善的API。然而,对于轻量级应用,Guava ...
首先,需要在Hibernate的配置文件中启用二级缓存并指定Ehcache为提供者,然后在实体类或映射文件中启用缓存。 ```xml <!-- hibernate.cfg.xml --> <property name="hibernate.cache.use_second_level_cache">true ...
#### 五、配置EhCache缓存插件 1. **添加EhCache JAR包**:在项目的类路径下添加EhCache的JAR包。 2. **创建`ehcache.xml`文件**:在项目的`src`目录下新建一个名为`ehcache.xml`的配置文件,用于指定EhCache的具体...
– 设置Hibernate缓存提供者为EhCache –> <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider <!– 启用查询缓存 –> <property name="hibernate.cache.use_query_cache">true ``` 同时...
1. **配置Hibernate**:在hibernate.cfg.xml中添加二级缓存提供商的配置,例如Ehcache,指定对应的XML配置文件路径。 ```xml <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache....
- **与Spring、Hibernate的集成**:Ehcache可以非常容易地与Spring和Hibernate框架集成,简化缓存的配置和使用。 #### 二、准备工作 在开始使用Ehcache之前,需要先完成以下准备工作: 1. **下载JAR包**: - **...
如果二级缓存中也没有所需数据,则 Hibernate 会执行 SQL 查询,并将查询结果存储到二级缓存中。 #### 三、二级缓存的配置与实现 ##### 3.1 配置二级缓存 要在 Hibernate 中启用二级缓存,需要进行以下步骤: 1....
### Ehcache分布式缓存及其在Spring中的应用 #### 一、Ehcache概述与原理 Ehcache是一款高效且轻量级的纯Java缓存框架,由于其出色的性能和易于集成的特点,在Java开发中有着广泛的应用。作为Hibernate的默认缓存...
为了启用Ehcache作为二级缓存提供者,我们需要在Hibernate配置文件中设置`hibernate.cache.provider_class`为`net.sf.hibernate.cache.EhCacheProvider`。同时,如果要开启查询缓存,还需设置`hibernate.cache.use_...