如何使用与@Inheritance一起使用的@ManyToOne关系删除级联

时间:2019-03-04 16:08:03

标签: hibernate spring-data-jpa

我有几个实体,它们引用了另一个实体对象的同一实例,例如:

@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: 最终出现问题,因为所有实体实际上都在扩展另一个实体。

0 个答案:

没有答案