В настоящее время я работаю над проектом Springboot и столкнулся с проблемой:
Я хочу запустить метод перед каждым дочерним , и мой код находится ниже.
У меня есть Родительский класс и Дочерний один со следующей конфигурацией:
@Entity
public class Parent implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy = "parent")
@OnDelete(action = OnDeleteAction.CASCADE)
private List<Child> children = new ArrayList<>();
}
@Entity
public class Child implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "child_id", nullable = false)
@Getter(onMethod = @__({@JsonIgnore}))
private Parent parent;
@PreRemove
void test() {
System.out.println("Before removing");
}
}
Что я хочу: Когда объект Parent удаляется, Anottation @OnDelete(action = OnDeleteAction.CASCADE)
будет запущен, и каждый связанный с ним дочерний объект также будет удален, но я хочу сделать некоторые логи c, прежде чем это произойдет.
Что происходит: Когда объект Parent удаляется, аннотация @OnDelete(action = OnDeleteAction.CASCADE)
срабатывает, и каждый связанный с ним дочерний объект удаляется, но метод с @PreRemove не запускается.
Нужно ли добавить дополнительные настройки?