Как удалить дочерний объект?

Ошибка:

Cannot delete or update a parent row: a foreign key constraint fails (`ebdb`.`technology_operations`, CONSTRAINT `FKhvgdd0pr7lsksud21mjddnpt0` FOREIGN KEY (`operations_id`) REFERENCES `operation` (`id`))

Имею две сущности, первая:

@Table(name = "operation")
public class Operation implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "standard")
    private int standard;

    @Column(name = "ratio")
    private double ratio;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "technology_id")
    @JsonBackReference
    private Technology technology;

    public Operation() {
    }

    public Operation(String name) {
        this.name = name;
    }

    public Operation(String name, int standard, double ratio, Technology technology) {
        this.name = name;
        this.standard = standard;
        this.ratio = ratio;
        this.technology = technology;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getStandard() {
        return standard;
    }

    public void setStandard(int standard) {
        this.standard = standard;
    }

    public double getRatio() {
        return ratio;
    }

    public void setRatio(double ratio) {
        this.ratio = ratio;
    }

    public Technology getTechnology() {
        return technology;
    }

    public void setTechnology(Technology technology) {
        this.technology = technology;
    }
}

Вторая сущность:

@Entity
@Table(name = "technology")
public class Technology implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "name")
    private String name;

    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "technology")
    @JsonManagedReference
    Set<Operation> operations;

    public Technology() {
    }

    public Technology(String name) {
        this.name = name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Set<Operation> getOperations() {
        return operations;
    }

    public void setOperations(Set<Operation> operations) {
        this.operations = operations;
    }
}

Кусочек контроллера:

@DeleteMapping("/delete/{id}")
    public ResponseEntity<Operation> deleteOperation(@PathVariable Long id){
        operationRepository.deleteById(id);
        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}

Удаляю родительский объект technology, все его дочерние операции тоже удаляются. Пытаюсь удалить дочерний объект operation. Жалуется, что тут как бы связь с родительским. Как это вылечить?


Ответы (0 шт):