gpt4 book ai didi

java - 如何使用 javax.persistence.OneToMany 在 hibernate 4 中设置级联更新?

转载 作者:行者123 更新时间:2023-11-29 03:20:10 25 4
gpt4 key购买 nike

我使用 hibernate 4.2。

它没有给我 OneToMany 注释的 hibernate 变体,但只有 javax.persistence.OneToMany

所以我把它当作

public class Parent  {
...........
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
private Set<Child> children = new HashSet<Child>();

当我更新 Parent 时,我希望子集合通过级联 MERGE 进行更新。

session.update(parent);

但它不会更新子集合的子实体。它只发送父实体的更新语句。

那么如何更新 children 集合的级联子实体?

我不能使用 org.hibernate.annotations.CascadeType,因为 javax.persistence.OneToMany 不支持它。

最佳答案

如果要使用hibernate的CascadeType,在字段/方法层单独定义@Cascade(..)

@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY)
@Cascade({CascadeType.PERSIST, CascadeType.MERGE, CascadeType.SAVE_UPDATE}) //example
private Set<Child> children = new HashSet<Child>();

关于java - 如何使用 javax.persistence.OneToMany 在 hibernate 4 中设置级联更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24160026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com