Hibernate对象的3种状态
2015-09-23 15:36
260 查看
Hibernate对象的3种状态: 1,临时状态(Transient): 与数据库没有对应,跟Session没有关联。 一般是新new出的对象。 2,持久化状态(Persistent): 对象在Session的管理之中,最终会有对应的数据库记录。 特点:有ID,并且对对象的修改会同步到数据库。 3,游离状态(Detached,又叫脱管状态): 数据库中有对应记录,但对象不在Session管理之中。 修改此状态对象时数据库不会有变化。 Session中的对象是:内存中的对象的引用,Session关闭后,内存中的对象还存在。 a)transient:内存中一个对象,没ID,缓存中也没有 b)persistent:内存中有,缓存中有,数据库有 c)detached:内存有,缓存没有,数据库有 对象状态间的转换: save():把临时状态变为持久化状态(交给Sessioin管理),生成:insert into ...语句 update():把游离状态变为持久化状态,生成:update ... saveOrUpdate():把临时或游离状态转为持久化状态,生成:insert into 或 update ...语句 注:本方法是根据id判断对象是什么状态的:如果id为原始值(对象的是null,原始类型数字是0)就是临时状态,如果不是原始值就是游离状态。 get():获取数据,是持久化状态,生成:select ... where id=? 语句,并且会马上执行SQL语句 load():获取数据,是持久化状态,生成:select ... where id=? 语句,是否马上执行SQL语句,取决于lazy的取值。 delete():从数据库里删对象,缓存也会被清除,把持久化转为临时状态,生成:delete ... 语句 evict()、clear()、close()把持久化状态转换为游离状态
相关文章推荐
- C#实现将应用程序设置为开机启动的方法
- (模拟post请求)如何访问外部接口
- 内核配置make menuconfig 找不到arm选项
- USART、SPI、IIC的区别
- 3D扫描齿科应用 为病患再造完美牙齿
- Smart Client Software Factory 中的 MVP 模式概述
- spring(3) mvc 注解验证springmodules common validator (注解验证)
- ios 开发日记 9 - 一些 UIView 中管理 Subview 常用的方法
- 大型网站系统架构的演化
- android学习笔记10 - Animation-list帧动画实现
- luence入门实战第一步
- 对终端输入的行内容进行字典排序并把结果输出出来
- 面试题28:字符串的排列
- Java 内存区域和GC机制
- test5.20
- CISCO_CVoice – 002 : 模拟与数字中继
- 本人开通博客的目的
- SpringMVC进阶(三)——控制器
- 50 Must-have plugins for extending Twitter Bootstrap
- Objective-C入门20:Block