Как удалить дочерний объект?
Ошибка:
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. Жалуется, что тут как бы связь с родительским. Как это вылечить?