Как предотвратить несколько записей, хранящихся в базе данных? - PullRequest
0 голосов
/ 28 сентября 2011

Рассмотрим использование Java, Struts, Hibernate и Oracle.Как я могу предотвратить повторяющиеся записи, хранящиеся в базе данных.Один из способов - сделать поле уникальным.Например, я вхожу в страну "США" на странице JSP, США уже доступны, значит, как я могу предотвратить это.Пожалуйста, дайте мне знать.

С уважением,

Сара

Ответы [ 3 ]

3 голосов
/ 28 сентября 2011

Вы всегда должны накладывать уникальные ограничения на поля, которые должны оставаться уникальными.Это, однако, приведет к загадочному исключению во время фиксации.Если вы хотите быть более дружественным к пользователю, вы должны проверить, существует ли уже запись (используя запрос), прежде чем вставлять ее, и показать пользователю полезное и читаемое сообщение об ошибке, если запись уже существует.

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

0 голосов
/ 28 сентября 2011

Добавьте уникальный индекс в таблицу базы данных в столбце страны.

Кроме того, вы можете аннотировать атрибут страны вашего спящего объекта с помощью @Column(unique=true).

0 голосов
/ 28 сентября 2011

Запрос к вашей базе данных, содержит ли она уже США или нет. Если это так, не храните его. Если нет, то делай.

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