как избежать вставки повторяющихся записей, когда генератор последовательности имеет первичный ключ в сущности - PullRequest
0 голосов
/ 18 января 2019

В настоящее время у меня есть класс сущностей, у которого последовательность генерирует идентификатор в качестве первичного ключа. Каждый раз, когда пользователь вызывает остальные API, в базу данных вставляется запись.

Каждая запись будет иметь два статуса (FAILURE и SUCCESS). В соответствии с текущим дизайном моя сущность допускает много неудач и УСПЕХ из-за Идентификатор последовательности является первичным ключом.

Мое новое требование было

1.Allow only one SUCCESS Record.
2.Allow many FAILURE records (This for auditing purpose.I have No option to capture the both the records into same table.)

Решение, которое я предложил

Перед вставкой мы проверяем все записи об успехах, доступные для этого пользователя, если доступно, мы не разрешаем вставлять запись, если нет, мы разрешаем вставлять запись.

Это ручная проверка, которую мы выполняем перед вставкой данных в БД.

Я искал "Есть ли какой-нибудь лучший способ, которым я могу добиться этого, используя Spring Data JPA без ручной проверки", искал какой-то лучший шаблон для этого вида сценария. В нескольких объектах я должен реализовать тот же сценарий.

Я нашел один интерфейс под названием Persistable, с помощью которого я могу достичь поставленной цели? Я гуглил, но я не нашел много информации о реализации.

Есть ли какие-либо условия, которые я могу поддерживать на уровне таблицы базы данных? Это возможно? есть предложения?

Я использую данные весны jpa и базу данных оракула

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