gpt4 book ai didi

java - 如何级联删除@OneToOne?

转载 作者:行者123 更新时间:2023-12-01 11:09:15 29 4
gpt4 key购买 nike

我想创建一个 @OneToOne 映射,其中根实体通过外键约束引用子实体。

@Entity
public class MainEntity {
@Id private long id;

@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "fk_sheet_id", foreignKey = @ForeignKey(name = "fk_sheet"))
private SheetEntity sheet;
}

@Entity
public class Sheet {
@Id private long id;
//...

@OneToOne(mappedBy = "sheet")
private GiataHotelEntity mainEntity;
}

问题:当我进入数据库并在 MainEntity 上选择截断级联时,则关联的 @OneToOne Sheet被删除。

如果我反转映射并使 Sheet 成为拥有方,那么这个级联删除就会起作用!但我希望 MainEntity 成为拥有方。

我在这里可能做错了什么?

最佳答案

当您运行 truncate MainEntity 级联时,它应该截断 MainEntity 表以及任何使用 MainEntity 作为外键的表这里的情况不是。在您的情况下 - 外键与 MainEntity (列 fk_sheet_id)。如果通过在 Sheet 表中使用外键(指 MainEntity 中的主键)来创建关系 - 您的截断脚本将起作用。

关于java - 如何级联删除@OneToOne?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32562128/

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