首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能删除上下级

不能删除上下级
EN

Stack Overflow用户
提问于 2017-10-17 18:15:17
回答 1查看 59关注 0票数 0

我有两个使用Spring和Hibernate的实体

实体A:

代码语言:javascript
复制
@Entity
@Table(name = "A")
public class A {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @OneToOne(cascade = CascadeType.ALL, mappedBy = "a")
    private B b;

在这里,我与实体B有一对一的关系,该关系的所有者是实体A。

实体B:

代码语言:javascript
复制
@Entity
public class B{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @OneToOne
    @JoinColumn(name = "a_ID")
    private A a;

保存实体不会有任何问题。实体B获取数据库中实体A的ID。但是当我删除实体A时,我也想删除属于A的实体B。

当我删除时,我得到了这个错误:

代码语言:javascript
复制
MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails

我认为我在实体中的声明是正确的。这里的问题是什么?

编辑

当我检查实体B的表,特别是实体A的外键时,它显示Restricted on Update en on Delete

EN

回答 1

Stack Overflow用户

发布于 2017-10-17 18:22:15

在类A中将orphanRemoval属性设置为true

像这样:@OneToOne(mappedBy = "a", cascade = CascadeType.ALL, orphanRemoval = true)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46787747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档