Hibernate删除父级

时间:2018-05-01 22:30:44

标签: hibernate jpa hibernate-onetomany bidirectional-relation

当我想删除Hibernate中的父项时,如果有子项是否存在抛出异常的机制?

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "categoryId")
private Category category;

@OneToMany(mappedBy = "category", cascade = CascadeType.ALL)
private List<Product> productList = new ArrayList<>();

如果产品属于该类别,则不删除类别。

1 个答案:

答案 0 :(得分:1)

为什么Hibernate会在包含产品的类别删除上抛出异常?你要求Hibernate通过定义cascade = CascadeType.ALL来做到这一点。

如果您不希望在包含某些产品时删除某个类别,则需要自行确认:

if (category.containsProducts()) {
    throw new Exception();
}
categoryRepository.delete(category);