读书人

范例状态:瞬时、持久化、托管

发布时间: 2012-11-19 10:18:51 作者: rapoo

实例状态:瞬时、持久化、托管

????? 一个持久化类的实例可能处于三种不同的状态中的某一种。这三种状态的定义则与所谓的持久化上下文(persistence context)有关。Hibernate的Session对象就是这个所谓的持久化上下文:

?

瞬态(transient)

????? 该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键值)。

?

持久化(persistent)

????? 实例目前与某个持久化上下文有关联。它拥有持久化标识(相当于主键值),并且可能在数据库中有一个对应的行。对于某一特定的持久化上下文,Hibernate保证持久化标识与Java标识(其值代表对象在内存中的位置)等价。

?

托管(detached)

????? 实例曾经与某个持久化上下文发生过关联,不过那个上下文被关闭了,或者这个实例是被序列化(serialize)到另外的进程。它拥有持久化标识,并且在数据库中可能存在一个对应的行。对于托管状态的实例,Hibernate不保证任何持久化标识和Java标识的关系。

读书人网 >软件架构设计

热点推荐