[b]临时状态(transient):[/b]刚刚用new语句创建,还没有被持久化,不处于Session缓存中。处于临时状态的Java对象被称为临时对象。
特征:1.不处于Session缓存中,也可以说,不被任何一个Session实例关联。
2.在数据库中没有对应的记录。
在以下情况下,Java对象进入临时状态:
1.当通过new语句创建了一个Java对象,它处于临时状态,此时不和数据库中的任何记录对应。
2.Session的delete()方法能使一个持久化对象或游离对象转变为临时对象。对于游离对象,delete方法从数据库中删除与它对应的记录,对于持久化对象,delete方法从数据库中删除与它对应的记录,并把它从Session的缓存中删除。
[b]持久化状态(persistent):[/b]已经被持久化,加入到Session的缓存中。处于持久化状态的Java对象被称为持久化对象。
特征:
位于一个Session实例的缓存中,也可以说,持久化对象总是被一个Session实例关联。
持久化对象和数据库中的相关记录对应。
Session在清理缓存时,会根据持久化对象的属性变化,来同步更新数据库。Session的许多方法都能触发Java对象进入持久化状态。
Session的save方法把临时对象转变为持久化对象。
Session的load方法或get方法返回的对象总是持久化状态。
Session的find方法返回的List集合中存放的都是持久化对象。
Session的update、saveOrUpdate和lock方法使游离对象转变为持久化对象。
当一个持久化对象关联一个临时对象,在允许级联保存的情况下,Session在清理缓存时会把这个临时对象也转变为持久化对象。
[b]游离状态(detached):[/b]已经被持久化,但不再处于Session的缓存中。处于游离状态的Java对象被称为游离对象。
特征:不在位于Session的缓存中,也可以说,游离对象不被Session关联。
游离对象是由持久化对象转变过来的,因此在数据库中可能还存在与它对应的记录(前提条件是没有与其他程序删除了这条记录)。
java 临时数据存储方案 java临时对象定义
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
hive 定义临时数组 临时数组是什么
C语言中: 1、变量的定义: 对象和变量要区分 &nb
hive 定义临时数组 数组 取地址 取值