休眠删除父级
Posted
技术标签:
【中文标题】休眠删除父级【英文标题】:Hibernate delete parent 【发布时间】:2018-05-01 22:30:43 【问题描述】:当我想在 Hibernate 中删除父级时,如果有子级,是否有引发异常的机制?
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "categoryId")
private Category category;
@OneToMany(mappedBy = "category", cascade = CascadeType.ALL)
private List<Product> productList = new ArrayList<>();
如果产品属于该类别,则不删除类别。
【问题讨论】:
【参考方案1】:为什么 Hibernate 会在删除包含产品的类别时抛出异常?您通过定义 cascade = CascadeType.ALL
来要求 Hibernate 执行此操作。
如果您不希望某个类别在包含某些产品时被删除,您需要自己确认:
if (category.containsProducts())
throw new Exception();
categoryRepository.delete(category);
【讨论】:
以上是关于休眠删除父级的主要内容,如果未能解决你的问题,请参考以下文章