为了账号安全,请及时绑定邮箱和手机立即绑定

请问您通过工具类获是通过是opensession,还是getcureentSession取的session

opnsession每次获取都是新的session,

getCureent每次都是单例的session,那么是不是通过getCurrent获取session,就可以实现缓存了呢

正在回答

2 回答

工具类是通过openSession获得session的。视频中引用的是同一个session,所以相当于是同一个请求,于是执行一条sql语句,后来老师再次使用工具类获得session,所以就有两条session,有不同的sessionID,执行main函数相当于是两个不同的请求,所以执行两条sql语句,缓存的实质就是看是不是用的用一个session,个人理解,望指正0.0

0 回复 有任何疑惑可以回复我~

hibernate中通过定义

   hibernate.current_session_context_class =thread

来使得getCurrent获得到在一个线程中的session。只要在这个线程中,先前开启了一个session,并且没有关闭的化,就能够在getCurrent中获得同一个session。这样的化,就可以实现一级缓存。没有实机操作,逻辑上是这么理解的。

0 回复 有任何疑惑可以回复我~
#1

按耐不住de青春 提问者

我也是这么想的,但是两次在公司项目下,两次查询还是执行了2次SQL!~~~~~~~~~~``
2017-07-10 回复 有任何疑惑可以回复我~
#2

按耐不住de青春 提问者 回复 按耐不住de青春 提问者

不直到是我们项目问题,还是理解问题!~
2017-07-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Hibernate缓存策略
  • 参与学习       28782    人
  • 解答问题       24    个

本教程主要介绍Hibernate中缓存的原理、分类和使用

进入课程

请问您通过工具类获是通过是opensession,还是getcureentSession取的session

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信