- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
session中merge与update区别
session的update与merge方法
标签: HYPERLINK /?c=blogq=???by=tag杂谈
Hibernate的merge方法,按照hibernate对象生命周期的三个状态来讲。
1:如果POJO对象处于游离态,我所说的游离态是指该对象的id值为空。hibernate判断一个对象在数据库中是否存在不是看对象的其他信息,而是判断该id在数据库中是不是存在。如果id为空,那自然是不存在,所以当我们调用merge方法的时候,就会直接执行插入操作。这一点有点像saveorupdate()方法。看一段代码:
Java代码
User user = new User();
//user.setId(4);
user.setUsername(heyuanling2);
user.setAge(23);
user.setSex(w);
user.setPassword(heyuanling);
Session session = this.getSession();
Transaction tr = session.beginTransaction();
//User exituser = (User)session.get(User.class, new Integer(1));
session.merge(user);
mit();
再看hibernate的sql语句:
Java代码
Hibernate:
select
max(id)
from
user_
Hibernate:
insert
into
user_
(username, password, sex, age, birthday, other, id)
values
(?, ?, ?, ?, ?, ?, ?)
二:脱管态:如果我们把上面代码里//user.setId(4);的注释去掉,那么它就变成了脱管的对象了(其实从游离到脱管就这么简单,没有官方说的那么邪乎...)。这是我们再来看控制台的sql打印:
Java代码
Hibernate:
select
user0_.id as id4_0_,
user0_.username as username4_0_,
user0_.password as password4_0_,
user0_.sex as sex4_0_,
user0_.age as age4_0_,
user0_.birthday as birthday4_0_,
user0_.other as other4_0_
from
user_ user0_
where
user0_.id=?
看到没有,因为id不为空了,所以hibernate就不会再insert了。由于该对象的信息和数据库里的一模一样,所以hibernate只执行了一个select语句,并没有update,如果我们把字段的值做稍微的变动,那么控制台打印的sql语句还应该有一条update语句。就这一点来说,merge还有和saveorupdate()方法一样。
三:持久态:持久态更好理解。如果我们从数据库里get一条记录,那么这条记录就处于持久态,如果再调用merge,那么hibernate就会先判断该记录是否被修改,没有则什么也不干,修改了就update。这一点还是和saveorupdate()有点像。
Java代码
Session session = this.getSession();
Transaction tr = session.beginTransaction();
User exituser = (User)session.get(User.class, new Integer(1));
exituser.setAge(11);
session.merge(exituser);
mit();
session.close();
再看控制台打印结果:
Java代码
Hibernate:
select
user0_.id as id4_0_,
您可能关注的文档
最近下载
- 餐饮值班管理课程培训.pptx
- 尔雅《批判与创意思考》课后习题+期末试题.docx VIP
- 6-4正奇租赁二期资产支持专项计划现金流预测分析报告1213日.pdf
- 算法设计与分析(北航)中国大学MOOC慕课 章节测验期末考试客观题答案.docx
- 2024年山东省济宁市中考化学试卷(附答案).docx VIP
- T IAC CAMRA 50-2024 《事故汽车常用零部件修复与更换判别规范》(2).pdf
- 北师大版数学八年级下册第六章 平行四边形 大单元整体教学设计学历案教案附作业设计(基于新课标教学评一致性).docx
- 长江经济带港口发展研究(2011~).docx VIP
- 染色技术 8.1 涤纶结构特点和分散染料分类 8.1 涤纶结构特点、分散染料分类.pptx
- 人教版三年级下册必读书目《中国古代寓言故事》 .pdf
文档评论(0)