Hibernate学习(六):session.delete以及对象状态转换图
2007-08-17 17:49
357 查看
delelte方法从某种程度上来说和update方法很类似,特别是对传入实例的要求,只要所传入实例的OID在数据库中有对应的记录即可,否则Hibaernate就会抛出异常。我们还是从对象能够处于的3个状态来一一阐述。
1.传入实例是临时状态。一般来说这是不规范的操作,当然你必须要人为的给它指定OID,而且这个OID必须和数据库中的一条记录对应。
2.传入实例是游离状态。前面我们说过,游离状态与临时状态的最大区别就是在数据库中可能存在一条记录与之对应,因此如果这个游离的实例不存在与之对应的数据库记录,Hibernate就会抛出异常。
3.传入实例是持久化状态。嘿嘿,这种情况就不用说了吧。
总之,对于游离状态而言,delete方法从数据库中删除与它对应的记录(前提是有这条记录,否则异常);对于持久化对象而言,delete方法从数据库中删除与它对应的对象,并且把它从session的缓存中删除,此时状态变为临时状态。
下图简单的展示了对象的状态变化图:
图中各个方法的详细说明可以在Hibernate发布包中的api文档中找到,这里就不赘述了,^_^。
1.传入实例是临时状态。一般来说这是不规范的操作,当然你必须要人为的给它指定OID,而且这个OID必须和数据库中的一条记录对应。
2.传入实例是游离状态。前面我们说过,游离状态与临时状态的最大区别就是在数据库中可能存在一条记录与之对应,因此如果这个游离的实例不存在与之对应的数据库记录,Hibernate就会抛出异常。
3.传入实例是持久化状态。嘿嘿,这种情况就不用说了吧。
总之,对于游离状态而言,delete方法从数据库中删除与它对应的记录(前提是有这条记录,否则异常);对于持久化对象而言,delete方法从数据库中删除与它对应的对象,并且把它从session的缓存中删除,此时状态变为临时状态。
下图简单的展示了对象的状态变化图:
图中各个方法的详细说明可以在Hibernate发布包中的api文档中找到,这里就不赘述了,^_^。
相关文章推荐
- Hibernate学习(六):session.delete以及对象状态转换图
- Hibernate学习(六):session.delete以及对象状态转换图
- Hibernate学习04---Hibernate对象三种状态以及openSessoin/getCurrentSession
- 【学习笔记】Hibernate中对象的状态和转换以及Session的主要方法总结
- [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作
- 框架学习之Hibernate 第三节 session接口以及get/load/persist方法
- Hibernate之Session对象的相关方法以及持久化对象的状态
- Hibernate 学习笔记-1-2(测试Hibernate中session的生命周期以及CRUD)
- Hibernate学习笔记之Session-API实现CRUD以及get&load&merge方法
- Hibernate学习(三):Session的缓存及对象的状态
- SS4.1_Hibernate_ObjectStatus Hibernate对象三种状态以及openSession/getCurrentSession
- hibernate的对象状态以及Session的不同操作对对象状态的影响
- hibernate学习系列-----(3)Session 缓存和持久化生命周期以及Session 基本操作
- Hibernate 学习之路(二):Hibernate中的Session详解和持久化对象(二)
- Hibernate中对象状态以及一级缓存(session的缓存)
- 新手上路之Hibernate(三):持久化对象三种状态以及session的Get()与Load()区别
- hibernate中PO对象的三种状态分析以及session中的一些方法的区别
- 【转】hibernate学习系列-----(3)Session 缓存和持久化生命周期以及Session 基本操作
- Hibernate学习笔记(四)----核心开发接口、对象的三种状态、session常用方法
- hibernate中PO对象的三种状态分析以及session中的一些方法的区别