• Hibernate 持久化对象的状态


    持久化对象有3种状态:1、持久化状态      2、临时状态      3、游离状态


    Session 的特定方法能使对象从一个状态转换到另一个状态
    临时对象(transient)
    •    在使用代理主键的情况下, OID 通常为 null
    •    不处于 Session 的缓存中
    •    在数据库中没有对应的记录


    持久化对象(也叫”托管”)(Persist)
    •    OID 不为 null
    •    位于 Session 缓存中
    •    持久化对象和数据库中的相关记录对应
    •    Session 在清理缓存时, 会根据持久化对象的属性变化, 来同步更新数据库
    •    在同一个 Session 实例的缓存中, 数据库表中的每条记录只对应唯一的持久化对象


    游离对象(也叫”脱管”)(Detached)
    •    OID 不为 null
    •    不再处于 Session 的缓存中
    •    一般情况需下, 游离对象是由持久化对象转变过来的, 因此在数据库中可能还存在与它对应的记录
    Session使用以下方法可以使持久化对象转变成游离对象:

  • 相关阅读:
    编码问题,编码到吐血
    dz验证码
    奇葩之mysql【四】找不到表了
    EntityFramework 使用Mysql数据库
    Create a custom output cache prodiver in asp.net4
    WPF一个很炫的控件
    yield grammar
    最大公约数的故事
    新人
    学习笔记 简单的amob A%B Problem
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4220002.html
Copyright © 2020-2023  润新知