课程
/后端开发
/Java
/Hibernate缓存策略
opnsession每次获取都是新的session,
getCureent每次都是单例的session,那么是不是通过getCurrent获取session,就可以实现缓存了呢
2017-07-07
源自:Hibernate缓存策略 2-1
正在回答
工具类是通过openSession获得session的。视频中引用的是同一个session,所以相当于是同一个请求,于是执行一条sql语句,后来老师再次使用工具类获得session,所以就有两条session,有不同的sessionID,执行main函数相当于是两个不同的请求,所以执行两条sql语句,缓存的实质就是看是不是用的用一个session,个人理解,望指正0.0
hibernate中通过定义
hibernate.current_session_context_class =thread
来使得getCurrent获得到在一个线程中的session。只要在这个线程中,先前开启了一个session,并且没有关闭的化,就能够在getCurrent中获得同一个session。这样的化,就可以实现一级缓存。没有实机操作,逻辑上是这么理解的。
按耐不住de青春 提问者
按耐不住de青春 提问者 回复 按耐不住de青春 提问者
举报
本教程主要介绍Hibernate中缓存的原理、分类和使用