我之前问过这个,但仍然不知道发生了什么......
我读过关于删除之前需要清除关系的实体,以及父实体中的 cascade.all,但是我仍然不明白休眠是如何不做任何事情的......
@Transactional
public void deleteAllinRange(LocalDate a, LocalDate b) {
List<Invoice> z = invoiceRepo.selector(a,b);
for(Invoice x : z){
x.setOwner(null);
invoiceRepo.delete(x);
}
进入 for 循环 z 列表大小为 314,并且有我期望的所有实体。然后我尝试将 setOwner 设置为 null,因为这是与父元素的唯一关系。
在清空所有者之后,x 实体中的所有属性都是 long、string 或 localDate 类型,所以肯定不能与父元素有任何关系吗?
父元素是一组带有发票元素列表的发票
@OneToMany(cascade=CascadeType.ALL, mappedBy = "owner", orphanRemoval = true)
@JsonManagedReference
private List<Invoice> invoices = new ArrayList<>();
java fill 只是运行invoiceRepo.delete(x);x 314,但实际上什么都不做,SQL 调试显示甚至没有尝试删除任何东西,注意这里查询...
为什么会这样?为什么没有任何查询,没有错误,什么都没有。
MMTTMM
相关分类