Когда мы моделируем базу данных, мы, скорее всего, определяем несколько ассоциаций "многие-к-одному" или "один-ко-многим". И, конечно же, то же самое происходит, когда мы моделируем сущности. Это довольно просто сделать с помощью JPA и Hibernate. Вам просто нужен атрибут, который представляет ассоциацию и аннотирует ее с @ManyToOne или @OneToMany ассоциацией. Но как бы легко это ни казалось, здесь, к сожалению, есть несколько подводных камней. Давайте смоделируем сущности Vendor и Client и создадим между ними двунаправленную связь One to Many. Итак, мы создаем поставщика и клиента, сохраняем их в БД, затем получаем клиента из БД, удаляем его и, наконец, убеждаемся, что все работает, как ожидалось. Но это не так. Это происходит потому, что JPA на самом деле не знает, следует ли ему удалять что-то удаленное из коллекции. Но подождите. Тогда как мы удалим дочернюю сущность из базы данных? Hibernate делает это автоматически, когда вы устанавливаете атрибут orphanRemoval аннотации @OneToMa
Как удалить дочерние записи в отношениях OneToMany из базы данных в JPA?
22 сентября 202122 сен 2021
72
1 мин