我有一个先前已被持久化并@OneToMany
与另一个实体有关系的实体.为了添加新实体,我只需在托管对象中添加我的新实体,并用于cascadeType.ALL
保留更改.有没有办法让我可以获取新创建的对象的id或获取我与合并使用的原始(非托管)对象更新其ID?
在伪代码中,我希望发生以下情况:
示例:父A,id = 13子B,id = 0
本质上,我想merge
在父级persist
上发布一个,但是在子级上进行级联(以便更新原始子实例,而不是复制).
显然这不会发生.我使用hibernate作为提供者.
如果您进行研究,Stackoverflow 帖子和JPA文档都有答案.
我想要的方法是persist
在托管父级上使用.这将忽略父级的任何更改,但会级联persist
(假设它已设置为级联).之后,子对象将具有正确的ID.
....
JPAEntity newObject=new JPAEntity();
managedObject.addChild(newObject);
em.persist(managedObject)
newObject.getId() //work fine!
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14625 次 |
最近记录: |