Hibernate的四种状态
来源:互联网 发布:telnet 测试 udp端口 编辑:程序博客网 时间:2024/05/21 08:59
纸上得来终觉浅
开始学习Hibernate对象的四种状态,花了一上午的时间来思考:
1.为什么要对Hibernate的对象分为几种状态:
状态是对对象所处所处情境的描述,在对hibernate定义了几种状态之后即方便了为人所达成共识,同时也能更好的理解hibernate的工作机制。
2.如何区分Hibernate的几种状态:
开始的时候我根据下面两个是否进行判断:
1)对象是否在Session缓存中
2)在数据表中是否有记录
可以上述条件进行组合的形式来穷尽四种种状态,但是并不够完全合理。因为四个状态是可以进行转换的,以数据保存流程的形式来区分更为合理,同时也能够使这四种状态包含了对象可能的所有情况 ,看下面一张图。
3)如下图所示:
A:如果对象是刚New出来的,那就是临时状态,这个时候是没有OID的,Session中无,数据库记录无;
B:如果这个时候进行了保存操作,或者从数据库中加载,就会变成持久化状态,这个时候有OID,Session中有,数据库记录有;
C:处于持久化状态,如果关闭Session,就会变成游离状态,这个时候有OID,Session中无,数据库中有(如果其他程序没有把它删除);
D:从持久化状态执行delete或者游离状态执行delete,变为删除状态,这个时候有OID,Session中有或者无,数据库记录无;
其实上面按照2) 中Session和数据库记录有、无的排列组合式也是可以区分的,只是不完全合理,同时有一种情况,即Session无而且数据库记录无的情况,可能是临时状态,也可能是删除状态。
0 1
- Hibernate的四种状态
- hibernate四种状态
- Hibernate四种状态
- 【hibernate】02-对象的四种状态
- Hibernate 中对象的四种状态
- Hibernate缓存机制和四种状态
- JPA中bean的四种状态跟hibernate中的bean三种状态
- Hibernate进阶:理解Hibernate中的四种状态(临时状态,持久状态,游离状态,删除状态)
- Hibernate学习笔记(四)----核心开发接口、对象的三种状态、session常用方法
- hibernate 一级缓存(Session缓存)和持久化对象的四种状态
- Hibernate入门(四)之持久化对象的三种状态
- 【hibernate】hibernate的三种状态
- hibernate的三种状态
- hibernate的3种状态
- Hibernate的三种状态
- hibernate的三种状态
- Hibernate的三种状态
- hibernate 的三种状态
- Android Exception [TransformException]
- SVN设置强制提交者填写注释信息,svn版本管理工具为VisualSVN Server 2.5.8
- ASCII,Unicode和UTF-8之间的关系
- Mac & Android Studio & SVN
- Redis Lua脚本原理
- Hibernate的四种状态
- java水平还是提高得很慢的原因是什么
- (Java实现) HDOJ 2037 今年暑假不AC 经典贪心
- 配置Gradle构建
- 矩形覆盖
- CSS文本超出
- Universal-Image-Loader完全解析
- Using convolutional neural nets to detect facial keypoints tutorial
- Android 实现简易下载管理器 (暂停、断点续传、多线程下载)