У меня есть следующая аннотация на класс сущности. База данных postgresql. К сожалению, это создает таблицу с уникальным ограничением, а не уникальным индексом.
@Entity
@Immutable
@Table(
indexes = {
@Index(name = "MasterT75_unique_idx", columnList = "productdivision, giccode", unique = true)
}
)
public class MasterT75 extends ModelBaseValidate<MasterT75> {
...
}
Я обнаружил, что это хорошо описывает разницу между уникальным ограничением и индексом.
https://www.postgresql.org/message-id/CAO8h7BJMX5V1TqzScTx2Nr1jH5iUFG8A071y-g1b_kdzpu9PDw%40mail.gmail.com
но я до сих пор не понимаю, почему hibernate не создает индекс (хорошо, не уникально). потому что есть
uniqueConstraints = {}
параметр аннотации @Table. поэтому, если я хочу сделать только уникальное ограничение, я мог бы использовать последнее, но если мне нужен индекс из-за производительности, я хочу иметь индекс.