hibernate 持久化对象的三个状态

Hibernate中的对象有3种状态

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

Transient 瞬时对象

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

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

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

Persistent 持久态

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

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

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

Detached 游离态或脱管态

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

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

上一篇:Java 程序员在写 SQL 时常犯的 10 个错误


下一篇:.ipynb文件 与ipython notebook