Являются ли эти аннотации @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 или маховик.