首页 > 解决方案 > Hibernate CascadeType.Persist 创建一个选择查询

问题描述

我正在尝试保留与其他实体具有一对多关系的对象。使用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不起作用。

标签: hibernatejpaone-to-manycascadehibernate-cascade

解决方案


推荐阅读