Мои сущности. ValidationStep имеет отношение один к одному с documentDetail, а documentDetail имеет отношение oneToMany documentValidations
ValidationStep
@Entity
public class ValidationStep {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name= "automation_information_aId", referencedColumnName= "aId")
private AutomationInformation automationInformation;
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@OneToOne(cascade = { CascadeType.ALL }, orphanRemoval = true,fetch=FetchType.LAZY)
private DocumentDetail documentDetail;
}
DocumentDetail
@Entity
public class DocumentDetail {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "documentDetail_id")
private List<DocumentValidation> documentValidationList
DocumentValidation
@Entity
public class DocumentValidation implements Comparable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
Мой запрос на удаление
@Modifying
@Query(value = "DELETE FROM ValidationStep validationStep WHERE validationStep.automationInformation.id = :aId AND isDraft is true")
void deleteAllDraftsByAutomationInformationaID(@Param("aId") Long aId);
Родительский ValidationStep удален, однако docDetail и documentValidations все еще находятся в базе данных.