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

时间:2023-11-16 23:22:50

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

*态与游离态的区别:

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

(1)*状态(Transient)

特性:

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

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

(2)持久状态(Persistent)

特性

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

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

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

特性

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

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