您的位置:首页 > 其它

Hibernate 性能优化之一级缓存

2015-01-13 20:42 267 查看
1、一级缓存的生命周期
一级缓存在session中存放,只要打开session,一级缓存就存在了,当session关闭的时候,一级缓存就不存在了

2、一级缓存是依赖于谁存在的
依赖于session存在的

3、怎么样把数据存放到一级缓存中
利用session.get、update、save

      * session.save方法
     * * 可以把一个对象变成持久化状态的对象
     * * 可以把一个对象放入到一级缓存中

      * session.update方法
    * * 能把一个对象的状态转化成持久化状态
    * * 能把一个对象存放到一级缓存中

      * session.get方法
    * * 通过该方法得到的对象是一个持久化对象
    * * 通过该方法可以把该对象存放到一级缓存中(session缓存中)

4、怎么样从一级缓存中获取数据
利用session.get方法可以获取数据

      
5、怎么样把缓存中的数据同步到数据库
只要是一个持久化状态的数据就在一级缓存中
利用session.flush方法

      * session.flush方法
    * * hibernate内部会去检查session缓存中的所有的对象
    * * 如果该对象是持久化对象,并且该对象的ID在数据库中有对应的记录,并且该对象的属性有变化,则会自动发出update语句,如果该对象的属性没有变化,则不发出update语句
    * * 检查持久化对象中是否有关联的对象,如果有关联的对象,并且设置了级联操作,这个时候会检查级联对象的id在数据库中有没有对应的记录,如果有,则发出update语句,如果没有,则发出insert语句
    * * 如果有维护关系的代码,则还会改变关系
    * * 全部检查完成以后,就发出sql语句,把一级缓存中的内容同步到数据库中

6、怎么样把数据库的数据同步到一级缓存中
session.reflesh方法 只能同步一个对象

7、一级缓存的特性
也叫session级别的缓存
session中存放私有数据
可以通过新建session和从当前线程中获取session保证数据的安全性

8、从一级缓存中清楚某一个对象
session.evcit方法 并且把一个对象从持久化状态转化成脱管状态

9、清空一级缓存中所有的数据

  session.clear();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: