读书人

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

发布时间: 2012-03-09 16:54:57 作者: rapoo

学习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更新过的缓存。

读书人网 >J2EE开发

热点推荐