merge attachDirty attachClean用法 attach用法与短语

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()等措施,把脱管对象变为永远对象。

  

爱华网本文地址 » http://www.aihuau.com/a/25101012/115745.html

更多阅读

英语词组 表示“最终”、“最后”的常用短语 词组和短语

【英语词组】表示“最终”、“最后”的常用短语佳中in theend主要有两个用法。1)与将来时态连用,表示未来最终的状态或期待的结果。2)指经过许多变化、困难或捉摸不定的情况之后“最后”,“终于”才出现的结果,多用于过去时态。这

痔疮药物 痔疮用什么药效果好

根痔散根痔散【拼音】:genzhisan【种类】:中草药【主治】:内痔、外痔、混合痔【创制时期】清中期【成分】纯中草药配伍,有黄柏、胡麻仁、土茯苓等【用法与用量】 饭后半小时黄酒送服,服用头两次患者需出汗。每日三次。如患者外痔过大,可同

十二地支的相刑与相穿 地支相刑什么意思

地支相刑:三刑有二:寅巳申、丑未戌三刑,子卯是破,自刑无意义。三刑用法近似六冲,并不表示刑法、罪恶与疾病,与六冲有区别的地方在于三刑全时有责难、受过、损坏之意,还有,寅巳申、丑戌未都可以分开来解,寅与巳以相穿为主,寅与申以六冲为主,巳

二型糖尿病胰岛素用法 胰岛素用法与用量

1.要计算出胰岛素的日用量:患者首次应用胰岛素时应计算出一天的用量,具体的计算方法有:①空腹血糖(毫摩尔/升)×1.8。如患者空腹血糖10毫摩尔/升时,首次应用胰岛素的日用量为18单位。②空腹血糖(毫克/分升)÷10。如患者空腹血糖为200毫克/分升时,首次应用胰岛素

声明:《merge attachDirty attachClean用法 attach用法与短语》为网友倾城般的骚年分享!如侵犯到您的合法权益请联系我们删除