zoukankan      html  css  js  c++  java
  • 持久对象的生命周期

    持久化对象的状态:

    瞬时对象(Transient objects):使用new创建的对象不是立刻就持久的,它们的状态是瞬时的,也就是说没有跟数据库表相关联的行为,只要应用不再引用这些对象,它们的状态就会丢失,并由垃圾回收机制回收。

    持久化对象(Persist objects):持久实例是任何具有数据库标示的实例,它有持久化管理器Session统一管理,持久实例是在事务中进行操作的,它们的状态在事务结束时同数据库进行同步,当事务提交时,通过执行sql的insert,update和delete语句把内存中的状态同步到数据库中。持久化对象不会被垃圾回收,因为Session相当于一个一级缓存,该对象在执行save()方法后,会把对象保存在map中,也就是说此时map引用了对象,所以就不会被垃圾回收。

    离线对象(Detached objects):Session关闭之后,持久化对象就变为离线对象,离线表示这个对象不能再与数据库保持同步,它们不再受hibernate管理。

    当一个瞬时对象通过session的save()操作后就会变成持久对象,当执行了session的close()方法那么就会把持久对象变为离线对象,当离线对象update()操作后会变成持久对象,持久对象执行了delete()操作就变成了瞬时对象。

  • 相关阅读:
    docker原理(转)
    HTTP代理(转)
    租房的注意事项
    聊聊常见的网络攻击
    我眼中的 Nginx(一):Nginx 和位运算
    5G网络与4G相比,有什么区别?
    当 “HTTP” 先生遇上“S”小姐
    虎牙直播张波:掘金Nginx日志
    又拍云张聪:OpenResty 动态流控的几种姿势
    一文读懂 HTTP/2 特性
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1955611.html
Copyright © 2011-2022 走看看