学java和asp.net的朋友-免费的浪曦java视频和asp.net视频下载. 是全套的完整的。http://www.itpob.cn/bbs/thread-196-1-1.html 有需要的可以去下。 // 关于merge() attachDirty() attachClean()三种方法下面做一个简单的介绍 /** * 将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象。 * 如果该session中没有关联的持久化对象,加载一个,如果传入对象未保存,保存一个副本并作为持久对象返回,传入对象依然保持detached状态。 */ public CodeDepts merge(Usertable detachedInstance) { log.debug("merging Usertable instance"); try { Usertable result = (Usertable) getSession() .merge(detachedInstance); log.debug("merge successful"); return result; } catch (RuntimeException re) { log.error("merge failed", re); throw re; } } /** * 将传入的对象持久化并保存。 * 如果对象未保存(Transient状态),调用save方法保存。如果对象已保存(Detached状态),调用update方法将对象与Session重新关联。 */ public void attachDirty(Usertable instance) { log.debug("attaching dirty Usertable instance"); try { getSession().saveOrUpdate(instance); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } /** * 将传入的对象状态设置为Transient状态 */ public void attachClean(Usertable instance) { log.debug("attaching clean Usertable 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()等方法,把脱管对象变为持久对象。
分享到:
相关推荐
进阶 3:merge:合并 commits 学习时长: 11分9秒 8 进阶 4:Feature Branching:最流行的工作流 学习时长: 8分10秒 9 进阶 5:关于 add 学习时长: 2分25秒 10 进阶 6:看看我都改了什么 学习时长: 5分18秒 11 高级 1...
Hibernate中的merge使用详情解说
poppy & glamrock : merge master摇滚之王:合并大师Unity合并士兵战斗游戏项目源码C# 支持Unity版本2019.4.3f1及以上 描述 合并、战斗并挑战自己,成为虞美人和魅力摇滚之王:合并大师 演示版APK 特征 统一广告... ...
根据注释可以知道 merge 有两个职责: 1.如果对象为 unsaved,对对象的拷贝执行 save 方法,返回拷贝的对象。 2.如果对象为 detached,将对象的状态拷贝到和对象的标识一样的持久化对象中,如果持久化对象不存在,就...
根据一个源数据表对另一个数据表进行确定性的插入、更新和删除这样复杂的操作,运用新的MERGE语句,开发者用一条命令就可以完成。对两个表进行信息同步时,有三步操作要进行。首先要处理任何需要插入目标数据表的新...
8.4.5 Session的merge()方法 198 8.4.6 Session的delete()方法 200 8.4.7 Session的replicate()方法 201 8.5 级联操纵对象图 202 8.5.1 级联保存临时对象 206 8.5.2 更新持久化对象 207 8.5.3 持久化临时对象 ...
8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 8.4.7 Session的replicate()方法 8.5 级联操纵对象图 8.5.1 级联保存临时对象 8.5.2 更新持久化对象 8.5.3 持久化临时对象 8.5.4 更新游离...
8.4.5 Session的merge()方法 198 8.4.6 Session的delete()方法 200 8.4.7 Session的replicate()方法 201 8.5 级联操纵对象图 202 8.5.1 级联保存临时对象 206 8.5.2 更新持久化对象 207 8.5.3 持久化临时对象 ...
拼图软件源代码:能拼100个图片成一个图
8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 8.4.7 Session的replicate()方法 8.5 级联操纵对象图 8.5.1 级联保存临时对象 8.5.2 更新持久化对象 8.5.3 持久化临时对象 8.5.4 更新游离...
8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 8.4.7 Session的replicate()方法 8.5 级联操纵对象图 8.5.1 级联保存临时对象 8.5.2 更新持久化对象 8.5.3 持久化临时对象 8.5.4 更新游离...
8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 8.4.7 Session的replicate()方法 8.5 级联操纵对象图 8.5.1 级联保存临时对象 8.5.2 更新持久化对象 8.5.3 持久化临时对象 8.5.4 更新游离...
Pandas合并DataFrame_Merge,_Join,_Concat,_Append【Pandas入门教程6】
merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理: 当ID在数据库中不能找到时,用update的话肯定会报异常,然而用merge的话,就会insert。 当ID在数据库中能找到的时候,update与...
NULL 博文链接:https://dreamzhong.iteye.com/blog/1218885
Hibernate merge、update与saveOrUpdate方法的区别
合并测试 合并测试
diff and merge tools, praxis merge
使用免费的Soda PDF Merge扩展程序,您可以将多个文件合并为一个PDF。 选择所需数量的PDF文件,然后将它们组合成一个易于管理的文档。 该扩展程序将您的“新标签页”配置为Soda PDF Merge,以提供此免费工具以及...
示例 4a - 使用session.merge(..)更新非 Hibernate 托管实体。 示例 5 - 删除会话中已存在具有相同标识符的实体的非 Hibernate 受管实体。 示例 5a - 在删除非 Hibernate 受管实体之前首先使用session.merge(..) 。...