merge attachDirty attachClean用法.
来源:互联网 发布:linux 复制覆盖文件 编辑:程序博客网 时间:2024/06/05 08:04
merge attachDirty attachClean用法.
2011-07-17 02:01:50| 分类: 默认分类 | 标签: |字号大中小 订阅
大家对以下3个措施定然不面生,一些IDE生成的代码等闲都有下面三个措施:
public Person merge(Person detachedInstance) { log.debug("merging Person instance"); try { Person result = (Person) getSession().merge( detachedInstance); log.debug("merge successful"); return result; } catch (RuntimeException re) { log.error("merge failed", re); throw re; } } public void attachDirty(Person instance) { log.debug("attaching dirty Person instance"); try { getSession().saveOrUpdate(instance); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } public void attachClean(Person instance) { log.debug("attaching clean Person instance"); try { getSession().lock(instance, LockMode.NONE); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } }
merge:将传入的detached事态的对象的属性复制到永远化对象中,并归来该永远化对象 。万一该session中未曾关系的永远化对象,加载一个,万一传入对象未保留,保留一个副本并作为永远对象归来,传入对象依旧坚持detached事态。
attachDirty:将传入的对象永远化并保留。万一对象未保留(Transient事态),调用save措施保留。万一对象已保留(Detached事态),调用update措施将对象与Session重新关系。
attachClean:将传入的对象事态设置为Transient事态。
解释一下,在Hibernate中的对象有三种事态,即:
俄而事态(Transient)、永远事态(Persistent)、脱管事态(Detached)
1、俄而事态(Transient)
由new号召开发内存空间的Java对象,也即便平时所纯熟的等闲Java对象。
如:Person p = new Person();
俄而对象个性:
(1)不和Session实例关系
(2)在数据库中未曾和俄而对象关系的登记
2、永远事态(Persistent)
永远的实例在数据库中有对应的登记,并具有一个永远化标识(identifier).
永远对象总是与Session和Transaction相干联,在一个Session中,对永远对象的改换不会即刻对数据库举行改变,而定然在Transaction终止,也即便厉行commit()尔后,才在数据库中恳挚运行SQL举行改变,永远对象的事态才会与数据库举行同步。在同步之前的永远对象称为脏(dirty)对象。
俄而对象转为永远对象:
(1) 穿越Session的save()和saveOrUpdate()措施把一个俄而对象与数据库相干联,这个俄而对象就成为永远化对象。
(2) 利用fine(),无线通讯模块get(),load()和iterater()待措施查询到的数据对象,将成为永远化对象。
永远化对象的个性:
(1) 和Session实例关系
(2) 在数据库中有和永远对象关系的登记
3、脱管事态(Detached)
与永远对象关系的Session被关闭后,对象就变为脱管对象。对脱管对象的引用依旧管用,对象可继续被修正。
脱管对象个性:
(1) 性质上和俄而对象雷同
(2) 只是比爱俄而对象多了一个数据库登记标识值id.
永远对象转为脱管对象:
当厉行close()或clear(),evict()尔后,永远对象会变为脱管对象。
俄而对象转为永远对象:
穿越Session的update(),saveOrUpdate()和lock()等措施,把脱管对象变为永远对象。
- merge attachDirty attachClean用法
- merge attachDirty attachClean用法.
- merge attachDirty attachClean用法
- merge,attachDirty,attachClean
- merge,attachDirty,attachClean
- Hibernate状态 (merge,attachDirty,attachClean)
- hibernate中merge()、attachDirty()、attachClean()
- Hibernate状态 (merge,attachDirty,attachClean)
- Hibernate状态 (merge,attachDirty,attachClean)
- Hibernate状态 (merge,attachDirty,attachClean
- Hibernate状态 (merge,attachDirty,attachClean
- Hibernate状态 (merge,attachDirty,attachClean)
- Hibernate状态 (merge,attachDirty,attachClean)解析
- IDE自动生成merge,attachDirty,attachClean作用
- Hibernate 中的attachDirty,attachClean,merge,findByProperty和findByExample
- 关于Hibernate的merge() attachDirty() attachClean()三种方法比较使用
- hibernate自动生成的DAO类中的merge() attachDirty() attachClean()方法简单介绍
- merge用法
- Apache——Rewrite重写规则
- 大数据量,海量数据 处理方法总结
- 2013 ACM/ICPC 长沙网络赛B题解题报告
- Cocos2d-x学习之搭建coocs2d-x2.1.5并编译到android和ios
- 通过www.ip138.com获取本机外网ip以及所在地理位置
- merge attachDirty attachClean用法.
- valgrind使用心得
- Google China New Grad Test 2014 Round A Problem D
- 简单链式结构删除
- ASP.NET伪静态的实现及伪静态的意义
- 关于GCC模板出现"undefined reference to"的错误
- 《UNIX环境高级编程》笔记--umask函数
- Cocos2d-x 详解坐标系统
- 利用Excel VBA将坐标点直接转换为谷歌地球的kml格式文件(ExcelToKml)