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