hibernate 持久化对象的三个状态

      Hibernate中的对象有3种状态

     瞬时对象(TransientObjects)、持久化对象(PersistentObjects)和离线对象(DetachedObjects也叫做脱管对象)

Transient 瞬时对象

不在Session的缓存中,不与任何的Session实例相关联。

在数据库中没有与之相对应的记录

  通过Session的save()方法和saveOrUpdate()方法可以把一个临时对象和数据库相关联,并把临时对象携带的信息通过配置文件所做的映射插入数据库中,这个临时对象就成为持久化对象。

Persistent 持久态

      在Session的缓存中,与Session实例相关联。

      在数据库中存在与之相对应的记录。

     通过Session对象的save()方法进行保存处于瞬时态的对象后,该对象就变为持久态。此时Session中已经存在该对象,并且对应数据库中的一条记录。

Detached 游离态或脱管态

    不在Session的缓存中,不与任何的Session实例相关联

    在数据库中存在与之相对应的记录。(前提条件是没有其他Session实例删除该条记录)

   

   

原文地址:https://www.cnblogs.com/zhaoleigege/p/7607729.html