Hibernate удалить родителя - PullRequest
0 голосов
/ 02 мая 2018

Когда я хочу удалить родителя в 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 голосов
/ 02 мая 2018

Почему Hibernate выбрасывает исключение при удалении категории, содержащей продукты? Вы просите Hibernate сделать это, определив cascade = CascadeType.ALL.

Если вы не хотите, чтобы категория была удалена, если она содержит некоторые продукты, вам необходимо убедиться в этом самостоятельно:

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