zoukankan      html  css  js  c++  java
  • Hibernate

    • 临时对象(Transient):使用new操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说,它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其他对象所引用),它们的状态将会丢失,并由垃圾回收机制回收

        –      在使用代理主键的情况下, OID 通常为 null

        –      不处于 Session 的缓存中

        –      在数据库中没有对应的记录

    • 持久化对象(也叫”托管”)(Persist):持久化实例是任何具有数据库标识的实例。它有持久化管理器Session统一管理,持久化实例是在事务中进行操作的——它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的insert、update和delete语句把内存中的状态同步到数据库中

        –      OID 不为 null

        –      位于 Session 缓存中

        –      若在数据库中已经有和其对应的记录, 持久化对象和数据库中的相关记录对应

        –      Session 在 flush 缓存时, 会根据持久化对象的属性变化, 来同步更新数据库

        –      在同一个 Session 实例的缓存中, 数据库表中的每条记录只对应唯一的持久化对象

    • 游离对象(也叫”脱管”) (Detached):Session关闭之后,持久化对象就变成离线对象。离线表示这个对象不能再与数据库保持同步,它们不再受Hibernate管理。

        –      OID 不为 null

        –      不再处于 Session 缓存中

        –      一般情况需下, 游离对象是由持久化对象转变过来的, 因此在数据库中可能还存在与它对应的记录

    • 删除对象(Removed)

        –      在数据库中没有和其 OID 对应的记录

        –      不再处于 Session 缓存中

        –      一般情况下, 应用程序不该再使用被删除的对象

     

  • 相关阅读:
    [luogu4799 CEOI2015 Day2] 世界冰球锦标赛(折半搜索)
    [luogu3230 HNOI2013] 比赛 (搜索+Hash)
    [luogu2317 HNOI2005] 星际贸易 (dp)
    [luogu2414 NOI2011]阿狸的打字机 (AC自动机)
    [bzoj3507 Cqoi2014]通配符匹配 (hash+DP)
    [luogu2054 AHOI2005] 洗牌 (数论)
    bzoj1491 [NOI2007]社交网络
    bzoj1022 [SHOI2008]小约翰的游戏John
    bzoj1088 [SCOI2005]扫雷Mine
    bzoj1295 [SCOI2009]最长距离
  • 原文地址:https://www.cnblogs.com/pjlhf/p/8727694.html
Copyright © 2011-2022 走看看