Hibernate之hibernate中java对象的状态
来源:互联网 发布:凡科建站 源码 编辑:程序博客网 时间:2024/06/03 03:20
只有清楚Hibernate中java对象的状态,以及对象之间的转换点,才能更好的操作对象。
1.Hibernate中java对象有3种状态:
(1)临时状态(transient)
刚刚通过关键字new创建出来,还没有被持久化,没有处于Session缓存中。
(2)持久化状态(persistent)
已经被持久化,放入Session缓存中的状态。
(3)游离状态(detached)
已经被持久化,但是不在Session缓存中。
状态变化实例:
以上三种状态动态行为都是参考Session,以下为状态转换动态转换图:
2.Hibernate不同状态的特征
(1)临时态特征
不处于Session缓存中;
没有持久化,数据库中没有记录;
从以上流程图可以看出,在以下三种情况下,对象进入临时态:
1.刚new出来,没有被持久化
2.从数据库中删除对应记录,同时从Session中
3.将游离态对象删除从数据库中删除对应记录
(2)持久态特征
在Session缓存中;
持久化对象与数据库中相应记录对应;
Session有很多方法可以让不同状态对象进入持久化状态,从以上流程图,可以看出常用如下:
1.save()或saveOrUpdate()把临时态转换为持久态,也可把游离态转换为持久态。
2.Session的load()或get()返回对象处于持久态。
(3)游离态特征
不在Session缓存中,即不在被Session关联;
由持久化对象转换而来,数据库中可能存在对应记录,如果数据库对应记录没有被删除的情况下。
从转换图可以知道,Session的以下方法会使持久化对象转换为游离态对象:
close(),evict(),clear()
注意:临时态与游离态的区别:临时态没有被持久化,数据库中绝对不会有对应记录,而有离态由持久化变化而来,数据库记录没被删除的情况下,数据库可能存在游离态对应的记录,这是两者的根本区别。
- Hibernate之hibernate中java对象的状态
- Hibernate中java对象的状态
- hibernate中java对象的状态
- Hibernate应用中Java对象的状态
- Hibernate中java对象的状态
- Hibernate中java对象的状态
- (hibernate之二)hibernate中对象的状态
- Hibernate之对象的状态
- Hibernate中对象的状态
- hibernate中对象的状态
- Hibernate中对象的状态
- Hibernate中对象状态
- hibernate中java 的状态
- 力所能及之Hibernate中对象的三种状态
- 在Hibernate应用中Java对象的状态
- Hibernate中Java对象的三种状态
- hibernate中java对象的三种状态
- 单篇 Hibernate应用中Java对象的状态
- UI操作 解决方案
- 七个对我最重要的职业建议(译文)
- JAVA中类型转换
- 行为型模式11之1-Observer观察者模式例子理解
- WAMP服务器离线,80端口被Microsoft-HTTPAPI/2.0占用
- Hibernate之hibernate中java对象的状态
- 安装lsb_release
- 微信红包算法
- 笔记5,jQuery中的事件
- KVM架构与原理详解
- 例题6-15 UVa10305 Ordering Tasks(拓扑排序)
- 2-18学习记录
- 手机短信码使用流程
- scala学习