专栏首页行者常至Hibernate中 对象 的三种状态

Hibernate中 对象 的三种状态

在Hibernate中,可以把实体对象看成3中状态,分别是:瞬时态(临时态)、持久态、脱管态(游离态)。


临时态

  • 转换
    • 通过new创建的对象为瞬时态
    • 通过delete方法操作的对象将转变为瞬时态
  • 特征
    • 瞬时态的对象可以被垃圾回收
    • 瞬时态的对象未进行过持久化,未与session关联

持久态

  • 转换
    • 通过get 、load 、list 、iterate 方法查询到的对象为持久态
    • 通过save 、update 方法操作的对象转变为持久态
  • 特征
    • 持久态对象垃圾回收器不能回收
    • 持久态对象进行了持久化,与session相关联,实际上持久态对象存在于session缓存中,由session负责管理。
    • 持久态对象的数据可以自动更新到数据库中,时机是在调用session.flush()时执行。而提交事务时会调用session.flush(),因此提交事务时也会触发同步,可以理解为ts.commit=session.flush()+commit

脱管态

  • 转换
    • 通过session的evict 、clear 、close 方法操作的对象会转变为脱管态
  • 特征
    • 脱管态的对象可以被垃圾回收
    • 脱管态的对象进行过持久化,但已于session解除了关联

3种状态的转换:

瞬时态: session、数据库 里都没有。

持久态: session、数据库 里都有

脱管态: session里有、数据库里没有

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HTTP Status 500 - java.lang.Long cannot be cast to java.lang.Integer

    qubianzhong
  • (13)Struts2_动态方法调用(了解)

    qubianzhong
  • Hibernate 的延迟加载(懒加载)简介1

    qubianzhong
  • Hibernate中的三种状态

    爱撒谎的男孩
  • java之hibernate之session中对象的生命周期

    1. session是用来执行对象的crud操作,并且session是对象事务工厂。session是线程级别的,所以生命周期比较短。

    Vincent-yuan
  • 想申请用户体验设计实习?先看这六大建议!

    对学生而言,从学生身份过渡到职场人士身份,最重要的一个阶段就是实习期。假期实习是他们自己作为用户体验专业人士的重要一步。实习是一个巨大的机会,可以在很短的时间...

    奔跑的小鹿
  • 原QQ坦白说之解密教程

    背景:之前在QQ上突然有人发坦白说给我,第一感觉就是谁恶搞我,想找到是谁,是谁在恶作剧 ? ---- QQ坦白说之解密教程 一、模拟手机QQ 首先使用谷歌...

    运维小白
  • Python 神工具包!翻译、文字识别、语音转文字统统搞定

    常会遇到有些 PDF 是扫描版的无法复制(豆丁网上的),有些网页(极客时间)也限制了复制功能。这时候要复制,通常情况下只能手动去打,很浪费时间对吧。当然也可以使...

    周萝卜
  • 程序员进阶之路 --- 网络协议概观

    信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌...

    周三不加班
  • kali w3af的安装与相关问题

         kali 最新版本的安装好后是没有w3af的。(官方网站下载的2017最新版),(2016版的是有w3af的)。下面就开始安装w3af。

    py3study

扫码关注云+社区

领取腾讯云代金券