2017-01-24 2 views
0

В настоящее время я использую Hibernate с Postgresql.Разница между аннотацией ограничения спящего режима и запросом postgresql

В моей базе данных есть несколько столбцов, которые необходимо установить с помощью ограничения Unique. Так что я пошел в Интернете и нашел два способа сделать это

запрос в Postgresql:

ALTER TABLE foo ADD UNIQUE (thecolumn); 

гибернации аннотацию:

@Table(
    name = "foo", 
    uniqueConstraints = {@UniqueConstraint(columnNames = {"thecolumn"})} 
) 

Какой способ является предпочтительным? Или оба способа необходимы?

Спасибо.

+2

Вы хотите создать базу данных из аннотации спящего режима? затем используйте аннотацию. Else, сделайте это в вашей базе данных. –

+0

Спасибо за ответ. Я хочу создать базу данных из аннотации hibernate, но полезно ли добавлять уникальное ограничение в мой запрос на базу данных? – 000000000000000000000

+1

Невозможно повредить вашему уникальному ограничению в базе данных, это защитная сетка, если ваша аннотация не справляется с ее работой по некоторым причинам. Плюс это не позволит вам вводить дубликаты вручную в базу данных, если у вас много записей и не помните, что вы уже вставили. – Tapaka

ответ

1

Если ваша база данных будет обрабатываться только программным обеспечением (вы должны создать свою собственную проверку, чтобы избежать дублирования, если вы не планируете использовать какую-либо нотацию сущности), вы можете обрабатывать уникальное ограничение непосредственно в программном обеспечении. Но для поддержания целостности я рекомендую поставить это также в БД. Чтобы избежать человеческих ошибок.

Если ваша конфигурация сущностей обновляет db каждый раз, когда вы меняете сущность модели DB, а ENTITIES будут равны, но если нет, то никто не гарантирует, что ваши столбцы будут уникальными. (Если не указано ID).

Смежные вопросы