hzlhlove 2012-09-27 10:35 采纳率: 100%
浏览 274
已采纳

如何使Hibernate中EhCache缓存的Key能够动态设置

您好!
我现在在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();
  • 写回答

1条回答 默认 最新

  • jinnianshilongnian 2012-09-27 12:56
    关注

    1、hibernate二级缓存默认策略是单SessionFactory的。
    2、因此你创建了两个SessionFactory 则两套缓存无关。
    3、二级缓存的cache name默认是class的全限定类名;
    4、hibernate二级缓存 提供一个region的概念 可以使用region;
    [url]http://jinnianshilongnian.iteye.com/blog/1525884[/url]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功