zoukankan      html  css  js  c++  java
  • Hibernate的session缓存和对象的四种状态

    一.session缓存

      说session缓存就得说到JAVA对象的生命周期,当没有任何引用指向一个对象时,对象则可以被gc回收,也就是生命周期结束了

      而hibernate获取一个对象后,会将对象存入session缓存,即使代码中没有任何引用指向对象,session中也有引用指向对象,因此对象不会被gc回收

      当获取对象时,会先在session中找,找到了则直接返回对象引用,不会去访问数据库(注意:session的close方法等会将session缓存清空)

    1.session缓存清理及脏检查

      脏检查:缓存中的数据被修改,和数据库中的不符合时,在缓存被清理时,会执行更新语句将缓存中修改的数据更新到数据库中

      缓存清理:在提交事物(commit),session.flush等情况下,session会清理缓存,执行检查,同步数据;

        注意:不是在缓存中对象被改变后就立即清理并更新,而是在特定的时间,条件下进行,减少数据库访问同时保证数据的及时性

    二.对象的四种状态

      临时,持久化,删除,游离

    1.转换

      持久-游离:session的close,evict,clear等方法

      游离-持久:update等方法

      临时-持久:save,persist等方法

      数据库中加载持久对象:get,load等方法

  • 相关阅读:
    Newton's Method in C#
    bat中的注释符
    Oracle query and backup
    Oracle Essentials
    修改Oracle 10g数据库字符集
    Some awareness before migrating from x86 to x64
    DataTable 那些事(二)
    很赞的PHP字符串加密函数
    PayPal 注册和使用详解
    ASP网站session超时,后台操作超时,重新登陆
  • 原文地址:https://www.cnblogs.com/zhangxinly/p/5985487.html
Copyright © 2011-2022 走看看