jpa 使用一对一级联所有操作对删除操作不起作用

oprakyz7  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(173)

我希望在删除一个实体时同时删除另一个实体
这是第一个实体

@Table(name = "qualification")
public class Qualification {

        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "QUALIFICATION_PK_SEQ")
        @SequenceGenerator(name = "QUALIFICATION_PK_SEQ", sequenceName = "QUALIFICATION_PK_SEQ", allocationSize = 1)
        private Long id;

        @JsonManagedReference
        @OneToOne(cascade = CascadeType.ALL)
        private User user;
//attributes, getters, setters
}

其他实体

@Table(name = "user")
    public class User {
    
            @Id
            @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USER_PK_SEQ")
            @SequenceGenerator(name = "USER_PK_SEQ", sequenceName = "USER_PK_SEQ", allocationSize = 1)
            private Long id;
    
  @OneToOne(cascade = CascadeType.ALL)
    private Qualification qualification;
//attributes, getters, setters
}

因此,当我删除用户时,出现此错误

异常错误:ora-02292找到完整性约束条件子记录
先谢了

nbysray5

nbysray51#

你 必须 让 一 方 成为 " 所有 者 " , 另 一 方 成为 " 逆 方 " 。
使用 Map 时 , 必须 区分 用户 和 资格 之间 的 关系 。
您 可以 使用 mappedBy 属性 执行 此 操作 :

@OneToOne(cascade = CascadeType.ALL, mappedBy = "user")  
private Qualification qualification;

中 的 每 一 个
因此 , mappedBy 指向 关系 的 所有 者 方 。

相关问题