您的位置:首页 > 其它

对象状态

2015-10-03 22:39 204 查看
持久化对象的状态:

瞬时对象(TransientObjects):使用new操作符初始化的对象不是立刻就持久化的。他们的状态是瞬时的,也就是说他们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其他对象所引用),他们的状态将会丢失,并由垃圾回收机制回收。

临时对象的特征。临时对象具有以下特征:

(1) 不处于Session的缓存中,也可以说,不被任何一个Session实例关联。

 

 

持久化对象(PersistObjects):持久实例是任何具有数据库标识的实例。它有持久化管理器Session统一管理,持久实例是在事务中进行操作的———他们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行SQL的INSERT,UPDATE和DELETE语句把内存中的状态同步到数据库中。

持久化对象的特征。持久化对象具有以下特征:

(1) 位于一个Session实例的缓存中,也可以说,持久化对象总是被一个Session实例关联。

(2) 持久化对象和数据库中的相关记录对应。

(3) Session在清理缓存时,会根据持久化对象的属性变化,来同步更新数据库。

 

Session的许多方法都能够触发Java对象进入持久化状态:

(1) Session的save()方法把临时对象转变为持久化对象。

(2) Session的load()或get()方法返回的对象总是处于持久化状态。

(3) Session的find()方法返回的List集合中存放的都是持久化对象。

(4) Session的update()、saveOrUpdate()和lock()方法使游离对象转变为持久化对象。

(5)当一个持久化对象关联一个临时对象,在允许级联保存的情况下,Session在清理缓存时会把这个临时对象也转变为持久化对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: