Допустим, у меня есть:
class Car {
...
@OneToMany(mappedBy = "wheel", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
Set<Wheel> wheels;
}
class Wheel {
...
@ManyToOne(fetch = FetchType.LAZY)
Car car
}
У меня есть этот код (данные пружины, wheelRepository расширяет CrudRepository) для удаления колеса:
wheelRepository.delete(wheel);
Код не удаляетруль и не выкидывает никаких исключений.Глядя на журнал sql, нет оператора «delete».
Я наконец-то обнаружил проблему: у меня есть машина с колесным набором, содержащим колесо.
Выполнение этого решитпроблема:
car.getWheels().remove(wheel);
wheelRepository.delete(wheel);
Но можно ли избежать первой строки: когда я удаляю колесо, я хочу, чтобы колесо автоматически снималось с его автомобиля?
Еще один вопрос: это так?возможно ли по умолчанию генерировать исключение вместо «беззвучного удаления»?
Спасибо!