用户登录
用户注册

分享至

hibernate jpa 级联

  • 作者: huijhf5860555
  • 来源: 51数据库
  • 2020-11-09
表达能力不是很好,说得通俗点(就拿一张表做例子,级联的时候一样的道理)...

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也会对关联实体生效

凑合着看吧..呵呵



  你好!

hibernate对jpa的实现
Refresh对应的是Hibernate的flush()方法
Merge级对应的是Hibernate的update()方法
就是flush和update的区别

如有疑问,请追问。



  除了文字区别外,实在没大的不同
因为中文是从sun那得技术文档翻译过来的,目前也没有标准
所以就当一码事就可以了

不要吹毛求疵



  关注中!!~~~~~~~
软件
前端设计
程序设计
Java相关