gpt4 book ai didi

java - 删除继承类 JPA

转载 作者:行者123 更新时间:2023-11-28 23:45:50 25 4
gpt4 key购买 nike

我有一个定义如下的表:

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name = "EVENT_TYPE")
public abstract class Event implements Serializable {
@Id
@GeneratedValue
private Long id;
...
}

然后我有这个继承表:

@Entity
@DiscriminatorValue("BOOLEANVALUE")
public class BooleanValueEvent extends Event {
...
}

@Entity
@DiscriminatorValue("EXACTVALUE")
public class ExactValueEvent extends Event {
...
}

Hibernate 在数据库中创建了两个表,但是当我尝试在 JPA 上删除一个继承的对象时,它返回外键约束违规错误,因为它尝试删除第一个 Event 类。删除superClass时如何先删除继承的类,避免key constraint violation错误?

谢谢。

最佳答案

使用级联删除,删除 SubTable 实体会成功,并且会同时删除 subTable 和 parentTable 行。

@Entity
@DiscriminatorValue("BOOLEANVALUE")
@OnDelete(action = OnDeleteAction.CASCADE)
public class BooleanValueEvent extends Event {
...
}

@Entity
@DiscriminatorValue("EXACTVALUE")
@OnDelete(action = OnDeleteAction.CASCADE)
public class ExactValueEvent extends Event {
...
}

关于java - 删除继承类 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33604621/

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