JAVA JPA的级联刷新和级联更新的区别及作用?
答案:4 悬赏:50
解决时间 2021-01-30 09:56
- 提问者网友:你给我的爱
- 2021-01-30 06:57
JAVA JPA的级联刷新和级联更新的区别及作用?
最佳答案
- 二级知识专家网友:玩家
- 2021-01-30 07:07
表达能力不是很好,说得通俗点(就拿一张表做例子,级联的时候一样的道理)...
Refresh的作用:假如有一个条数据(就有name[值为B]和sex[值为male]两个字段),A用户取出来在进行修改操作(修改name为A),正在A修改的过程中(未提交表单),B用户也对这条数据进行修改操作(修改sex为female),B先将性别修改后提交数据库...接着A用户也提交表单,但是,此时在entityManager中的持久化实体的性别为male,没有更新为B用户修改成的female,所以此时执行一次Refresh操作,就会将该实体更新为数据库中的最新记录,然后再进行提交..做级联的时候就会将关联的实体的也获取最新的然后在更新,前提是要执行Refresh操作,CasCadeType.Refresh才会生效
Merge的作用:你要先去了解持久化实体在entityManager中的几种状态,新建,游离,托管(不是脱管),删除状态,Merge对实体进行操作时,会区分这个实体的状态,假如这个实体处于托管状态,就应该使用merge,否则会报异常..同样,做级联的时候执行merge操作,CasCadeType.Merge也会对关联实体生效
凑合着看吧..呵呵
Refresh的作用:假如有一个条数据(就有name[值为B]和sex[值为male]两个字段),A用户取出来在进行修改操作(修改name为A),正在A修改的过程中(未提交表单),B用户也对这条数据进行修改操作(修改sex为female),B先将性别修改后提交数据库...接着A用户也提交表单,但是,此时在entityManager中的持久化实体的性别为male,没有更新为B用户修改成的female,所以此时执行一次Refresh操作,就会将该实体更新为数据库中的最新记录,然后再进行提交..做级联的时候就会将关联的实体的也获取最新的然后在更新,前提是要执行Refresh操作,CasCadeType.Refresh才会生效
Merge的作用:你要先去了解持久化实体在entityManager中的几种状态,新建,游离,托管(不是脱管),删除状态,Merge对实体进行操作时,会区分这个实体的状态,假如这个实体处于托管状态,就应该使用merge,否则会报异常..同样,做级联的时候执行merge操作,CasCadeType.Merge也会对关联实体生效
凑合着看吧..呵呵
全部回答
- 1楼网友:神的生死簿
- 2021-01-30 10:23
关注中!!~~~~~~~
- 2楼网友:琴狂剑也妄
- 2021-01-30 09:02
除了文字区别外,实在没大的不同
因为中文是从sun那得技术文档翻译过来的,目前也没有标准
所以就当一码事就可以了
不要吹毛求疵
因为中文是从sun那得技术文档翻译过来的,目前也没有标准
所以就当一码事就可以了
不要吹毛求疵
- 3楼网友:从此江山别
- 2021-01-30 08:12
hibernate对jpa的实现
Refresh对应的是Hibernate的flush()方法
Merge级对应的是Hibernate的update()方法
就是flush和update的区别
Refresh对应的是Hibernate的flush()方法
Merge级对应的是Hibernate的update()方法
就是flush和update的区别
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯