Как аннотировать индекс для MappedSuperclass - PullRequest
2 голосов
/ 27 сентября 2011

У меня есть сопоставленный суперкласс с двумя уже проиндексированными свойствами.Теперь я хочу создать групповой индекс по обоим свойствам.до сих пор он работал с:

@MappedSuperclass
Class A {
    @Index(name="pa")
    int a;
    @Index(name="pb")
    int b;
}

Согласно документации по hibernate, я мог аннотировать свой новый индекс с помощью @Table (аннотация hibernate).но я не знаю, что установить для требуемого параметра applyTo.

кто-нибудь пробовал это раньше?

1 Ответ

1 голос
/ 27 сентября 2011

С Документация 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, которое позволяет указывать более одного столбца. Однако я не уверен, стоит ли дублировать определение индекса для каждого поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...