У меня есть одна проблема, чтобы решить.У меня есть две сущности: Action
и Logging
:
@Entity
public class Action {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
...other fields
...other fields
@Column
private Date start;
@Column
private Date end;
@Entity
public class Logging {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne
@JoinColumn(name = "action_id")
private Action action;
..not important fields
@Column
private String domain;
@Column
private Date date;
Только таблица ведения журнала имеет столбец action_id
как FOREIGN KEY
.
Одно действие может иметь несколько записей ведения журнала.
Вопрос: как я могу удалить все сущности Action, которые имеют дату до определенной даты и имеют определенный домен (который находится в таблице ведения журнала)?Например
deleteActionByDateAndDomain(LocalDateTime date, String domain)
Регистрирующая сущность является владельцем, верно?Итак, я должен удалить сущность Action, а затем все связанные сущности Logging, например, CASCADING?Или наоборот - сначала удалите все объекты ведения журнала, которые удовлетворяют моим условиям (date before dateX and domain == myDomain
передано в качестве параметров)?
Как бы вы это реализовали?Я мог бы, например, удалить сущность Action и все связанные сущности Logging, но в сущности Action нет сущности поля (только в Logging).
Если возможно, я должен использовать интерфейс CrudRepository.
Заранее большое спасибо!