Фиксация транзакции JPA после удаления - PullRequest
0 голосов
/ 20 июня 2020

У меня есть особый сценарий c, в котором 2 таблицы имеют отношения родитель-потомок. Когда я вызываю api для удаления ребенка, он работает нормально. А затем, когда я пытаюсь вызвать api для удаления родителя, я получаю исключение блокировки optimisti c. Проведя расследование, я понял, что при удалении родителя он также пытается удалить дочерний элемент, который уже был удален.

Ниже мой фрагмент кода. Любое предложение или помощь были бы замечательными.

Это код для удаления дочернего элемента.

@Transactional(Transactional.TxType.MANDATORY)
    public void deleteChild(int id) {
        var child= entityManager.find(Child.class, id);
        entityManager.remove(child);
    }

А это код для удаления родителя.

@Transactional(Transactional.TxType.MANDATORY)
    public void deleteParent(int id) {
        var parent = entityManager.find(Parent.class, id);
        entityManager.remove(parent);
    }

Родительская сущность имеет отношения OneToMany с дочерней сущностью.

@Table(name = "PARENT")
@Access(value = AccessType.FIELD)
public class Parent{
    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name = "PARENT_ID")
    private List<Child> child;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...