С Документация Hibernate :
@ Table (applyTo = "tableName", indexes = {@Index (name = "index1",
columnNames = {"column1", "column2"})}) создает определенные индексы
по столбцам таблицы tableName. Это может быть применено на основной
стол или любой дополнительный стол.
Обновление:
Для @MappedSuperclass вы можете попробовать использовать аннотацию @Tables
@Tables(value={@Table(appliesTo="table1", indexes={@Index(name="index1", columnNames={"column1", "column2"})}),
@Table(appliesTo="table2", indexes={@Index(name="index1", columnNames={"column1", "column2"})})})
Но это кажется довольно утомительным.
Обратите внимание, что аннотация @Index имеет свойство columnNames, которое позволяет указывать более одного столбца. Однако я не уверен, стоит ли дублировать определение индекса для каждого поля.