gpt4 book ai didi

java - JPA:防止级联操作[坚持,删除...]

转载 作者:行者123 更新时间:2023-11-30 11:41:00 27 4
gpt4 key购买 nike

我有两个实体

@Entity
@Table(name="parent")
public class Parent {
@Id
String uuid;

@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(
name="child",
joinColumns=@JoinColumn(name="parent_uuid", insertable=false, updatable=false)
)

@Column(name="uuid")
private Set<String> childrenUuids = new HashSet<String>();
}

@Entity
@Table(name="child")
public class Child {
@Id
String uuid;

@Column(name="parent_uuid")
String parentUuid;

}

现在当我持久化 Parent 时,childrenUuids 中的 child 会自动持久化,因为 ManyToOne 关系。我想防止对父级的所有操作(例如坚持,删除......)被级联到子级,JPA 有可能吗?我已经研究了几天,但找不到答案。谢谢。

最佳答案

您应该使用@OneToMany 而不是@ElementCollection。 @OneToMany 默认不级联。据我所知,@ElementCollection 总是级联,这是有道理的,因为“@ElementCollection 定义了基本类型或可嵌入类的实例集合”,并且基本类型/可嵌入对象被认为是其父级的组成部分。

关于java - JPA:防止级联操作[坚持,删除...],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449333/

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