关于Hibernate应用中Java对象的状态类型
来源:才华咖 本文已影响4.67K人
来源:才华咖 本文已影响4.67K人
临时状态(Transient):也叫瞬时状态。new出来的对象,没有被持久化处理,不处于Session缓存中的对象
持久化状态(Persistent):已经被持久化,加入到Session的缓存中
游离状态(Detached):也叫脱管状态。已经被持久化,但是不处在Session缓存中
⑴临时对象的特征:
不处于Session缓存中(不被任何一个Session实例关联)
在数据库中没有对应的记录
进入临时状态的条件:
new一个Java对象,他处于临时状态,不和数据库任何记录关联
Session的delete方法能够是一个持久化对象或游离对象转变为临时状态;对于游离对象,
delete方法从数据库中删除与它对应的记录;对于持久化对象,delete方法从数据库中删除与它对应的记录,
并把它从session缓存中删除
⑵持久化对象的特征:
在一个Session实例的缓存中(与一个Session关联)
持久化对象和数据库中的相关记录对应
Session清理缓存时,会根据持久化对象的属性变化,来同步更新数据库
进入持久化状态的条件
session的save方法
session的load和get方法返回的对象都是处于持久化状态
session的find方法返回的List中存在的对象都是处于持久化状态
session的update、saveOrUpdate和lock方法使得游离对象转换为持久化状态
当一个持久化对象关联一个临时对象,在允许级联保存的情况下,Session在清理缓存时把这个对象也转变为持久化状态
⑶游离对象的特征:
不再位于session缓存中(游离对象不被Session关联)
游离对象是从持久化对象转变过来的,因此在数据库中可能还存在与其对应的记录
游离对象与临时对象的.区别在于:前者是由持久化对象转变过来的,前者在数据库中还存在与之对应的记录,
而后者在数据库中没有与之对应的记录;
进入游离状态的条件
当调用session的close方法的时候,session缓存被清空,缓存中的所有持久化对象都变为游离状态。如果此时再没有其它变量引用的时候,其生命周期结束
session的evict方法能够从缓存中删除一个持久化对象,使它变为游离状态。如果内存中存在大量的对象的时候,可以通过这个方法来删除缓存中的对象(不建议使用这个方法,还是使用查询的方法和常规方法来处理对象在内存 中的深度)
关于Unit 1 The Dragon Boat Festival教学案
Javascript中设立对象的ReadOnly属性
A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英语作文
JavaScript在Android的WebView中parseInt函数转换不正确
Java中Number 与 Math 类
javaHibernate是什么
Dreamweaver中JavaScript行为操作使用方法
The Best Thing That Could Ever Happen少儿双语阅读
在ASP.NETWeb应用程序中我应该用DataReader类还是DataSet类
Advantages of Being a Teacher英语作文
Javascript中arguments对象的详解和使用方法
高中生优秀英语作文:Have a break away from electronics
The Rainbow After the Rain雨后的彩虹美文欣赏
Dreamweaver中JavaScript行为操作使用的总结
java如何利用java.net.URLConnection发送HTTP请求
Unit 9 A Have you ever been to a museum?八年级英语说课稿
关于Hibernate应用中Java对象的状态类型
Covering the ears to steal the bell高中英语作文
课题 8B Unit 5 International charities
英语阅读:African Union Leaders Talk Mali, Chinese Investmen
java.util.ArrayDeque类使用方法介绍
Cultivate Your ReadingHabit培养阅读习惯方法
Having fun in the Water Park开心的水上乐园作文
The Amazing Beach Party大学英语作文
关于发言类型
I want to be a headmaster优秀作文
Dreamweaver中JavaScript行为操作
关于java Spring整合Freemarker的详细步骤
Notice about the flea marke初中英语作文
关于新型冠状病毒的想象作文
Java类如何获取Spring的bean
圣诞节英语诗歌《We Won't Have a Christmas This Year》
I want to be a teacher初中英语作文
I want to be a headmaster英语作文
中学英语have and eye on,have an eye to,have an eye for这三
Language Barrier Between Chi英语阅读
J2EE 7中Bean Validation1.1的新特性
The Best Way of Traveling英语作文
Java transient关键字使用总结
职场应有的状态