shuai__feng 2009-12-26 06:11 采纳率: 0%
浏览 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 09:59
    关注

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

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

报告相同问题?