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条)

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码