繁体   English   中英

附加实体是否必须在JPA中合并?

[英]Is merging in JPA ever necessary for attached entities?

是否正确,我永远不需要使用EntityManager#merge() ,只要我只处理 附加的 托管实体? 换句话说,在 附加的 托管实体上调用merge()没有效果?

或者是否存在合并有用的情况? 我发现这个名字暗示我可以用它来处理一个OptimisticLockException ... :)

编辑 :简单来说,我对托管实体的理解是,在交易结束时,其属性/字段的修改会持久保存到数据库中。

规范声明:

如果X是一个托管实体,则合并操作会忽略它,但是,如果这些关系已使用级联元素值cascade=MERGEcascade=ALL注释进行注释,则合并操作将级联到由X关系引用的实体。

许多年后....

关于规范

如果X是一个托管实体,则合并操作会忽略它,但是,如果这些关系已使用级联元素值cascade = MERGE或cascade = ALL注释进行注释,则合并操作将级联到由X关系引用的实体。

考虑一下......

  • 对象X是受管理的,并且具有与对象Y的OneToMany关系,其中cascade = MERGE
  • 最初,当创建类型X的对象时,没有相关的Y.
  • 对象X是持久的。
  • 稍后创建对象Y并将引用添加到X.

我的理解是,合并是在此阶段执行以保持所有更改的正确操作,因此在某些情况下可以在托管实体上调用合并。

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM