shuai__feng 2009-12-26 14:11
浏览 239
已采纳

hibernate 的二级缓存..

public void query1(){
Session session = null;
session = GetSession.getSession();
UserBean user = (UserBean)session.get(UserBean.class,1);
System.out.println(user.getName());
session.close();
System.out.println("------------------------------");
Session session1 = GetSession.getSession();
UserBean u = (UserBean)session1.get(UserBean.class, 1);
System.out.println(u.getAddress());
session1.close();
System.out.println("------------------------------");
}

public void query2(){
    Session session = GetSession.getSession();
    UserBean user = (UserBean) session.get(UserBean.class, 1);
    System.out.println(user.getName());
}

(我先执行完query1 之后再执行query2 。两个是分开执行的!!)
这是我的两个方法,在query1中,在执行对一次get方法是发送了一条sql语句。这时将session关闭。再创建一个session1,在执行get方法是发送sql语句。只是得这个对象已经放在二级缓存里了。而我再次执行query2方法是不是应该直接到缓存中去找嘛。为什么query2还会发送sql语句呢?????
hibernate 高手给解答解答!!!
[b]问题补充:[/b]
不分开的话query2是不向数据库发送sql语句的,我试过了。
[b]问题补充:[/b]
谢谢你们的回答,不过好像不是我想要的答案

  • 写回答

4条回答 默认 最新

  • iteye_21093 2009-12-28 17:59
    关注

    错了,上边说的不对了。hibernate 的sessionFactory 是重量级的。每一个项目都有一个就行。 你把你的东西放到一个方法去测试下吧。就是一个方法起两个session

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!