我正在尝试保留与其他实体具有一对多关系的对象。使用CascadeType.ALL有效,但实际上我不想在删除主对象时删除该实体。因此我尝试使用CascadeType.PERSIST。但是当我使用它时,它会进行选择查询并说找不到该实体。那么为什么当我使用 cascadeType.PERSIST 时休眠会这样做。
这里基本上是我的课:
public class Employeer{
@Id
private String id;
@Column
private String name;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "employer_details", joinColumns = {@JoinColumn(name = "employeer_id", referencedColumnName = "id")}
, inverseJoinColumns = {@JoinColumn(name = "details_id", referencedColumnName = "id")})
private Set<Address> otherObjects= new HashSet<>();
}
所以问题是为什么使用CascadeType.PERSIST不会保留 Address 元素并创建一个选择查询并说找不到该实体。为什么要使用它,我不想在删除员工时从地址表中删除实体。
注意:我在看这篇文章。尝试保存数据时找不到实体。但是我想知道为什么CascadeType.PERSIST不起作用。