我有几个实体,它们引用了另一个实体对象的同一实例,例如:
@Data
@Entity
@OnDelete(action = OnDeleteAction.CASCADE)
class A {
@Id
private Long id;
}
@Data
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
abstract class B {
@Id
private Long id;
@OnDelete(action = OnDeleteAction.CASCADE)
@ManyToOne(fetch = FetchType.EAGER, optional = false, cascade = CascadeType.REMOVE)
private A a;
}
@Data
@Entity
class C extends B {
}
@Data
@Entity
class D extends B {
}
我的问题是我只想删除级联实例A
。预先不知道引用A的实体的数量。但是我无法完成这项工作,外键将没有删除级联指令。而且我无法进行双向映射。
编辑1: 最终出现问题,因为所有实体实际上都在扩展另一个实体。