附加实体是否必须在JPA中合并?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了附加实体是否必须在JPA中合并?相关的知识,希望对你有一定的参考价值。
是不正确的,我永远不需要使用EntityManager#merge()
,只要我只处理
附
管理实体?换句话说,调用merge()
附
管理实体没有效果?
或者是否存在合并有用的情况?我发现这个名字暗示我可以用它来处理OptimisticLockException
...... :)
编辑:简单来说,我对托管实体的理解是,在交易结束时,其属性/字段的修改会持久保存到数据库中。
答案
规范声明:
如果X是托管实体,则合并操作会忽略它,但是,如果已使用级联元素值
cascade=MERGE
或cascade=ALL
批注对这些关系进行批注,则合并操作将级联到由X的关系引用的实体。
另一答案
许多年后....
关于规范
如果X是一个托管实体,则合并操作会忽略它,但是,如果这些关系已使用级联元素值cascade = MERGE或cascade = ALL注释进行注释,则合并操作将级联到由X关系引用的实体。
考虑一下......
- 对象X是受管理的,并且具有与对象Y的OneToMany关系,其中cascade = MERGE
- 最初,当创建类型X的对象时,没有相关的Y.
- 对象X是持久的。
- 稍后创建对象Y并将引用添加到X.
我的理解是,合并是在此阶段执行以保持所有更改的正确操作,因此在某些情况下可以在托管实体上调用合并。
以上是关于附加实体是否必须在JPA中合并?的主要内容,如果未能解决你的问题,请参考以下文章