我有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
.