hibernate实体对象的三种状态:自由状态,持久状态,游离状态.

自由态与游离态的区别:

当一个持久化对象,脱离开Hibernate的缓存管理后,它就处于游离状态,游离对象和自由对象的最大区别在于,游离对象在数据库中可能还存在一条与它 对应的记录,只是现在这个游离对象脱离了Hibernate的缓存管理,而自由对象不会在数据库中出现与它对应的数据记录

 

 

(1)自由状态(Transient)

特性:

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

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

(2)持久状态(Persistent)

特性

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

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

( 3 ) 游离状态(Detached)/脱管状态

特性

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

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

原文地址:https://www.cnblogs.com/KingIceMou/p/7100189.html