首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

学习Hibernate中遇到关于二级缓存的有关问题

2012-03-09 
学习Hibernate中遇到关于二级缓存的问题!Session session1sf.openSession() Session session2sf.openSe

学习Hibernate中遇到关于二级缓存的问题!
Session session1=sf.openSession();
Session session2=sf.openSession(); //在这里创建发2条语句
 
session1.beginTransaction();
UserBean user1=(UserBean) session1.get(UserBean.class,
"E3BB8B149640454AB1974FE87B9A84E1");
session1.getTransaction().commit();
session1.close();

// Session session2=sf.openSession(); //在这里创建发一条语句
session2.beginTransaction();
UserBean user2=(UserBean) session2.get(UserBean.class,
"E3BB8B149640454AB1974FE87B9A84E1"); 
session2.getTransaction().commit();
session2.close();
二级缓存配置好,在以上代码中,创建session2的时机不同,向数据库发出的sql语句不同!谁可以解释下为什么?

[解决办法]
两条语句有什么不一样
[解决办法]
估计是一个session在open的时候就绑定了一个缓存区,所以前面直接打开两个session时,有可能其缓冲区都是空(或者都一样),如果在后面打开
Session session2=sf.openSession(); //在这里创建发2条语句

可能这里就用上了经session1更新过的缓存。

热点排行