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. keil uVision4一些使用总结(汉字注释,C关键字等)

    近日心血来潮,下载了最新的版的keil,再加上protues ,想弄个虚拟环境.主要原因还是经济问题.电子元件,是要花钱的... 今天遇到些keil uVision 4使用方面的问题,记录下来,方便以 ...

  2. 设计模式之装饰者模式(Decorator Pattern)

    一.什么是装饰者模式? 装饰者模式能够完美实现“对修改关闭,对扩展开放”的原则,也就是说我们可以在不修改被装饰者的前提下,扩展被装饰者的功能. 再来看看我们的文件操作代码: 1 InputStream ...

  3. SVN:分支合并到主干

    合并日志: --- Merging r173674 through r175986 into '.': C src/test/java/com/test/rigel/sandbox/organizat ...

  4. 在线LCA模板

    在线LCA 如求A,B两点的LCA,先计算出各个结点的深度d[],然后,通过递推公式求出各个结点的2次方倍的祖先p[],假设d[A] > d[B],则找到d[p[A][i]] == d[B]也就 ...

  5. 查看 AndroidManifest.xml文件

    1.Manifest Explorer 装在Android手机中,用此apk看系统中已安装应用的AndroidManifest.xml文件: protected boolean configForPa ...

  6. 动态规划——B 最大高度问题

    B - LIS Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  7. bzoj 1449 [JSOI2009]球队收益(费用拆分,最小费用流)

    1449: [JSOI2009]球队收益 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 547  Solved: 302[Submit][Status][ ...

  8. Nightmare(搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1072 /* 题意: 迷宫内有入口和出口 在6分钟结束后炸弹会爆炸,但是迷宫内有重置炸弹的装置,可以重置炸弹的时间 ...

  9. Jenkins 四: 启动关闭以及重启jenkins

    启动 1. 在桌面新建一个jenkins.bat文件.内容如下: cd /d %JENKINS_HOME% java -jar %JENKINS_HOME%\jenkins.war --httpPor ...

  10. 值得关注的 10 个 Python 英文博客

    英文原文:http://pythontips.com/2013/07/31/10-python-blogs-worth-following/ 中文翻译参考: http://python.jobbole ...