Hibernate持久化对象存在三种状态
2015-11-23 11:56
274 查看
Hibernate持久化对象存在三种状态
瞬时态 transient
尚未与Hibernate Session关联对象,被认为处于瞬时状态,失去引用将被JVM回收
无持久化标识OID,未与Session关联
持久态 persistent
数据库中有数据与之对应并与当前session有关联,
并且相关联的session没有关闭数据库并且事务未提交
存在持久化标识OID,与Session关联
脱管态 detached 数据库中有数据与之对应,
但当前没有session与之关联,脱管状态改变hibernate不能检测到
存在持久化标识OID,未与Session关联
* Hibernate持久化对象存在三种状态
1)瞬时(临时):没有与session关联,没有持久化标志OID(OID 为null)
2)持久: 与session关联,有持久化标志OID
3)托管(离线): 没有与session关联,有持久化标志OID
* 对象的状态是可以相互转化的
* 如何直接获得一个瞬时对象:User user = new User();
瞬时---》持久对象 session.save(user);session.saveOrUpdate(user);
瞬时---》托管对象 user.setId(1);
* 如何直接获得一个持久对象:session.get(User.class,1);session.load(User.class,1);query.list();---所有的查询方法获得的对象都是持久对象
持久---》瞬时对象 session.delete(user);
持久---》托管对象 session.close();session.clear();session.evict(user);---清理缓存
* 如何直接获得一个托管对象:没有办法直接获得托管,必须由其他对象转化
托管---》瞬时对象 user.setId(null);
托管---》持久对象 session.update(user);session.saveOrUpdate(user);
* 所有的持久对象都被session的一级缓存引用,持久对象就是缓存中的对象
* 持久对象拥有自动更新数据库的能力,由于快照区的存在
* Session的一级缓存,缓存的是对象的地址
瞬时态 transient
尚未与Hibernate Session关联对象,被认为处于瞬时状态,失去引用将被JVM回收
无持久化标识OID,未与Session关联
持久态 persistent
数据库中有数据与之对应并与当前session有关联,
并且相关联的session没有关闭数据库并且事务未提交
存在持久化标识OID,与Session关联
脱管态 detached 数据库中有数据与之对应,
但当前没有session与之关联,脱管状态改变hibernate不能检测到
存在持久化标识OID,未与Session关联
* Hibernate持久化对象存在三种状态
1)瞬时(临时):没有与session关联,没有持久化标志OID(OID 为null)
2)持久: 与session关联,有持久化标志OID
3)托管(离线): 没有与session关联,有持久化标志OID
* 对象的状态是可以相互转化的
* 如何直接获得一个瞬时对象:User user = new User();
瞬时---》持久对象 session.save(user);session.saveOrUpdate(user);
瞬时---》托管对象 user.setId(1);
* 如何直接获得一个持久对象:session.get(User.class,1);session.load(User.class,1);query.list();---所有的查询方法获得的对象都是持久对象
持久---》瞬时对象 session.delete(user);
持久---》托管对象 session.close();session.clear();session.evict(user);---清理缓存
* 如何直接获得一个托管对象:没有办法直接获得托管,必须由其他对象转化
托管---》瞬时对象 user.setId(null);
托管---》持久对象 session.update(user);session.saveOrUpdate(user);
* 所有的持久对象都被session的一级缓存引用,持久对象就是缓存中的对象
* 持久对象拥有自动更新数据库的能力,由于快照区的存在
* Session的一级缓存,缓存的是对象的地址
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统