Весеннее обновление JPA один-ко-многим вызывает SQLIntegrityConstraintViolationException - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть сущность с отношениями один-ко-многим. Проблема в том, что у меня есть уникальное ограничение на некоторые поля в сущности с отношением один ко многим, и когда я пытаюсь сначала очистить, а затем установить новые сущности (в одной транзакции) от одного ко многим, я получаю java. sql .SQLIntegrityConstraintViolationException: повторяющаяся запись. Похоже, что метод JPA save () сначала пытается добавить новые записи, а затем удалить старые, и из-за пересечения он получает исключение.

@Transactional
public void updateUsers() {
RepairEntity repairEntityWithoutUsers = repairEntity.clearRepairAssignEntities();
RepairEntity savedRepairEntityWithoutUsers = repairService.save(repairEntityWithoutUsers);

    Set<RepairAssignEntity> newRepairUsers = getRepairUsers(repair, clientEntity);
    RepairEntity updatedRepairEntity = savedRepairEntityWithoutUsers.withRepairAssignEntities(newRepairUsers);
    RepairEntity savedRepairEntity = repairService.save(updatedRepairEntity);
}

, а когда после @Transactional база данных пытается обновить - исключение выброшены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...