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

Hibernate 性能优化之一级缓存的更多相关文章

  1. Hibernate性能优化之EHCache缓存

    像Hibernate这种ORM框架,相较于JDBC操作,需要有更复杂的机制来实现映射.对象状态管理等,因此在性能和效率上有一定的损耗. 在保证避免映射产生低效的SQL操作外,缓存是提升Hibernat ...

  2. Hibernate 性能优化之二级缓存

    二级缓存是一个共享缓存,在二级缓存中存放的数据是共享数据特性     修改不能特别频繁     数据可以公开二级缓存在sessionFactory中,因为sessionFactory本身是线程安全,所 ...

  3. Hibernate 性能优化之查询缓存

    查询缓存是建立在二级缓存基础之上的,所以与二级缓存特性相似,是共享的,适合修改不是很频繁的数据 查询缓存不是默认开启的,需要设置      1.在cfg文件中配置 <property name= ...

  4. [MySQL性能优化系列]提高缓存命中率

    1. 背景 通常情况下,能用一条sql语句完成的查询,我们尽量不用多次查询完成.因为,查询次数越多,通信开销越大.但是,分多次查询,有可能提高缓存命中率.到底使用一个复合查询还是多个独立查询,需要根据 ...

  5. 8.Hibernate性能优化

    性能优化 1.注意session.clear() 的运用,尤其在不断分页的时候 a) 在一个大集合中进行遍历,遍历msg,取出其中额含有敏感字样的对象 b) 另外一种形式的内存泄漏( //面试题:Ja ...

  6. 第七章 Hibernate性能优化

    一对一关联 实体类关系 一对多 多对多 一对一 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射.下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方 ...

  7. spring管理hibernate,mybatis,一级缓存失效原因

    mybatis缓存:一级缓存和二级缓存 hibernate缓存:一级缓存和二级缓存 关于缓存: 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器, 其作用是为了减少应 ...

  8. 在Hibernate框架中详谈一级缓存

    在学习Hibernate的过程中我们肯定会碰上一个名词---缓存,一直都听说缓存机制是Hibernate中的一个难点,它分为好几种,有一级缓存,二级缓存和查询缓存 今天呢,我就跟大家分享分享我所理解的 ...

  9. Hibernate二 映射 注解 一级缓存

    Hibernate映射1.@Entity 被该注解修饰的POJO类是一个实体,可以用name属性指定该实体类的名称,系统默认以该类的类名作为实体类的名称.2.@Table 指定持久化类所映射的表,它的 ...

随机推荐

  1. npm check failed 解决办法

    npm ERR! shasum check failed for C:\Users\MM\AppData\Local\Temp\npm-10900-415697c8\registry.npmjs.or ...

  2. 【算法Everyday】第三日 KMP算法

    题目 你知道的. 分析 分析不来. 代码 void OutputArray(int* pArr, int iLen) { ; i < iLen; i++) { printf("%d\t ...

  3. Ubuntu 12.04 下安装 Eclipse

    方法一:(缺点是安装时附加openjdk等大量程序并无法去除,优点是安装简单) $ sudo apt-get install eclipse 方法二:(优点是安装内容清爽,缺点是配置麻烦)1.安装JD ...

  4. (转载)PHP中刷新输出缓冲

    (转载)http://www.cnblogs.com/mutuan/archive/2012/03/18/2404957.html PHP中刷新输出缓冲buffer是一个内存地址空间,Linux系统默 ...

  5. 【模拟】Codeforces 699B One Bomb

    题目链接: http://codeforces.com/problemset/problem/699/B 题目大意: N*M的图,*代表墙.代表空地.问能否在任意位置(可以是墙上)放一枚炸弹(能炸所在 ...

  6. HDU-1207 汉诺塔II

    汉诺塔  四根所需要的步数的规律: 规律:a[1]=1;a[2]=a[1]+2;a[3]=a[2]+2;(2个加2^1)a[4]=a[3]+4;a[5]=a[4]+4;a[6]=a[5]+4;(3个加 ...

  7. [Locked] Inorder Successor in BST

    Inorder Successor in BST Given a binary search tree and a node in it, find the in-order successor of ...

  8. [Locked] Paint House I & II

    Paint House There are a row of n houses, each house can be painted with one of the three colors: red ...

  9. C++ sizeof

    class A{ int a; char c; char b; }; class B{ char c; int a; char b; }; int main(int argc, char* argv[ ...

  10. 字符编码 ASCII,Unicode 和 UTF-8 概念扫盲

    今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚. 下面就是我的笔记,主要用来整理自己的思 ...