Hibernate 性能优化之一级缓存

 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();

原文地址:https://www.cnblogs.com/liuwt365/p/4222418.html