休眠删除父级
Hibernate delete parent
当我想在Hibernate中删除一个parent时,如果有child有没有抛出异常的机制?
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "categoryId")
private Category category;
@OneToMany(mappedBy = "category", cascade = CascadeType.ALL)
private List<Product> productList = new ArrayList<>();
不删除类别,如果产品属于该类别。
为什么 Hibernate 会在包含产品的类别删除时抛出异常?您要求 Hibernate 通过定义 cascade = CascadeType.ALL
来完成它。
如果您不希望某个类别在包含某些产品时被删除,您需要自行确定:
if (category.containsProducts()) {
throw new Exception();
}
categoryRepository.delete(category);
当我想在Hibernate中删除一个parent时,如果有child有没有抛出异常的机制?
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "categoryId")
private Category category;
@OneToMany(mappedBy = "category", cascade = CascadeType.ALL)
private List<Product> productList = new ArrayList<>();
不删除类别,如果产品属于该类别。
为什么 Hibernate 会在包含产品的类别删除时抛出异常?您要求 Hibernate 通过定义 cascade = CascadeType.ALL
来完成它。
如果您不希望某个类别在包含某些产品时被删除,您需要自行确定:
if (category.containsProducts()) {
throw new Exception();
}
categoryRepository.delete(category);