我有一个问题要解决。我有两个实体:
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
.
一个操作可以有多个日志记录。
问题是:我如何删除在某个日期之前有日期并且有某个域(位于日志表中)的所有操作实体?
例如
deleteActionByDateAndDomain(LocalDateTime date, String domain)
日志实体是所有者,对吗?那么,我应该删除操作实体,然后删除所有相关的日志记录实体,例如级联吗?或者相反-首先删除满足我条件的所有日志实体(
date before dateX and domain == myDomain
作为参数传递?
您将如何实现它?
例如,我可以删除操作实体和所有相关的日志记录实体,但操作实体中没有字段域(仅在日志记录中)。
如果可能的话,我应该使用基本的接口。
提前非常感谢!