美文网首页
二、Hibernate

二、Hibernate

作者: cqzhangjian | 来源:发表于2018-01-15 11:36 被阅读0次

1.session 一级缓存对象

缓存:经常访问物理数据库,为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制(内存中数据,缓存),应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。

1.1 Hibernate 中对象三种状态

  • 临时(瞬时)状态对象(TO)
    特点:对象没有 OID 值(对象 id值,标识唯一的对象),不受 session 管理
  • 持久化状态对象(PO)
    特点:对象有 OID 值(对象 id值,标识唯一的对象),受 session 管理
  • 游离(托管)状态对象(DO)
    特点:对象有 OID 值(对象 id值,标识唯一的对象),不受 session 管理
  • 删除状态(非官方说法)

对象状态的转换:

session 对象方法使用可以影响对象的状态

图片.png

1.2 一级缓存区

session 对象的 save、update、get、load、query.list、query.uniqueResult ,query.iterate 等方法执行后,可以把数据放入到一级缓存中

session 对象的 get 、load、 query.iterate方法可以取一级缓存对象数据,而query.list 、 query.uniqueResult 不能取

注意:将来 用 list 方法放,iterate 方法来取,解决了 iterate 的N+1 问题

1.3 快照区

快照区保存的数据是 一级缓存中数据的拷贝,当执行session.flush 方法,或者说在有事务的前提下 tx.commit()(因为提交事务前隐式的执行了session.flush方法),hibernate 就会做 脏数据检查机制:
快照区域的数据跟 数据库中的数据一定是一样的(同步的),如果一级缓存中的数据发生改变,跟快照区中的数据进行匹配,如果有发现有改变,就会发发出去update 语句去更新 一级缓存数据。

相关文章

  • Hibernate 缓存机制

    Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存。 1.Hibernate...

  • SpringMVC/Hibernate项目实践一

    SpringMVC/Hibernate项目实践一SpringMVC/Hibernate项目实践二SpringMVC...

  • SpringMVC/Hibernate项目实践二

    SpringMVC/Hibernate项目实践一SpringMVC/Hibernate项目实践二SpringMVC...

  • SpringMVC/Hibernate项目实践三

    SpringMVC/Hibernate项目实践一SpringMVC/Hibernate项目实践二SpringMVC...

  • hibernate缓存机制书目录

    hibernate缓存机制 什么是缓存 缓存的范围 Hibernate一级缓存 hibernate二级缓存 hib...

  • springboot使用hibernate validator校

    目录 一、参数校验 二、hibernate validator校验demo 三、hibernate的校验模式 1、...

  • day02

    Hibernate框架第二天 课程回顾:Hibernate框架的第一天 今天内容 Hibernate的持久化类 什...

  • hibernate二

    layout: posttitle: hibernate--多表subtitle: 多表操作...

  • Hibernate(二)

    5. 对象的状态及生命周期及CRUD操作 5.1 对象的状态及生命周期 Transient:瞬时态,session...

  • 二、Hibernate

    1.session 一级缓存对象 缓存:经常访问物理数据库,为了降低应用程序对物理数据源访问的频次,从而提高应用程...

网友评论

      本文标题:二、Hibernate

      本文链接:https://www.haomeiwen.com/subject/fzmroxtx.html