Являются ли эти аннотации @Table(uniqueConstraints) и @Table(indexes) одинаковыми?

При создании индексов в JPA / Hibernate они одинаковы?

@Table (uniqueConstraints = @UniqueConstraint (columnNames = {"series", "date"}))

А также:

@Table (indexes = {@Index (name = "idx", columnList = "series, date", unique = true)})

А если нет, то какая разница?

1 ответ

И то и другое @UniqueConstraint а также @Index это всего лишь подсказки для инструмента генерации схемы, который чувствителен к диалектам / БД. Ваш конкретный пример, скорее всего, даст одинаковый индекс ddl для большинства поставщиков БД. Общее различие между ними заключается в том, что вы можете индексировать столбец без обеспечения уникальности. И, конечно, оба эти значения не имеют значения, если вы не генерируете свою схему с помощью схемы JPA/hibernate. Если вам нужен больший контроль над вашими индексами или схемой в целом, вы можете рассмотреть возможность использования таких инструментов, как liquibase или маховик.

Другие вопросы по тегам