zoukankan      html  css  js  c++  java
  • hibernate持久化对象三种状态及其转换

    持久化类类三种状态介绍
    1. 瞬时态:也叫做临时态或自由态,它一般指我们 new 出来的对象,它不存在 OID,
         与 hibernate session 无关联,在数据库中也无记录。它使用完成后,会被 jvm 直接
         回收掉,它只是用于信息携带。
    简单说:无 OID 与数据库中的信息无关联,不在 session 管理范围内。
    2. 持久态:在 hibernate session 管理范围内,它具有持久化标识 OID 它的特点,在事
         务未提交前一直是持久态,当它发生改变时, hibernate 是可以检测到的。
    简单说:有 OID session 管理,在数据库中有可能有,也有可有没有。
    3. 托管态:也叫做游离态或离线态,它是指持久态对象失去了与 session 的关联,托
         管态对象它存在 OID,在数据库中有可能存在,也有可能不存在。  
         对于托管态对象,它发生改变时 hibernet 不能检测到。

     

    持久化类三种状态切换

    1. 瞬时态(new 出来的)
     瞬时------>持久 save saveOrUpdate
     瞬时----->脱管(游离) 手动设置 oid
    2. 持久态 它是由 session 管理
     持久------->瞬时 delete() 被删除后持久化对象不在建议使用
     持久----->脱管 注意:session 它的缓存就是所说的一级缓存
     evict(清除一级缓存 中指定的一个对象)
     clear(清空一级缓存)
     close(关闭,清空一级缓存)
    3. 脱管态 (它是无法直接获取)
     脱管----->瞬时 直接将 oid 删除
     脱管---->持久 update saveOrUpdate lock(过时)

  • 相关阅读:
    ETL开发
    ETL 运行维护
    软件开发的核心
    索引的本质
    也谈谈学习
    oracle内部结构
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher H
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher :G
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher F
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher E
  • 原文地址:https://www.cnblogs.com/wsx-wb/p/7338299.html
Copyright © 2011-2022 走看看