我有OneToMany双向关系实体类(WorkOrder和Task)。WorkOrder有一个或多个Task。WorkOrder当我通过查询删除一个实体时,我得到外键约束异常。EntityManager不能Task自动删除相关。
我的问题:是否CascadeType.REMOVE按em.removed(..)方法使用?不使用它query吗?(删除查询)。
工作订单.java
.....
public class WorkOrder {
....
@Temporal(TemporalType.TIMESTAMP)
private Date expiryDate;
@OneToMany(cascade=CascadeType.ALL, mappedBy="workOrder", orphanRemoval=true)
private List<Task> taskList;
......
}
任务.java
......
public class Task {
.....
@ManyToOne
@JoinColumn(name = "WORK_ORDER_ID", referencedColumnName = "ID")
private WorkOrder workOrder;
.....
}
我需要WorkOrder根据到期日期删除。我需要先删除相关Task,然后我必须删除WorkOrder. 这是正确的吗?我认为,它会更好地CascadeType被Query.