Создание индексов в БД с помощью аннотации Hibernate @Index

У меня есть возможности гибернации на основе аннотаций в моем проекте.

Теперь я хочу создать индекс по столбцу. Мое текущее определение столбца -

@NotNull
@Column(name = "hash")
private String hash;

, и я добавляю аннотацию @Index сюда.

@NotNull
@Column(name = "hash")
@Index(name="hashIndex")
private String hash;

, а затем DROP TABLE и перезапустите сервер Tomcat. После того, как сервер создан, таблица создана, но я не вижу новый индекс по следующему запросу.

SHOW INDEX FROM tableName

Предполагается построить таблицу с новым индексом. Я использую InnoDB с MySQL.

18
задан AhmetB - Google 20 August 2010 в 18:05
поделиться

1 ответ

Интересно, что в моей конфигурации Hibernate я использовал hibernate.hbm2ddl.auto = update .

Этот модифицирует существующую базу данных. Я вручную удалял таблицу tableName и перезапускал Tomcat, и таблица была создана, но индекс не создавался.

Однако я сделал hibernate.hbm2ddl.auto = create , который воссоздает базу данных при каждом создании экземпляра webapp, он удалял всю мою базу данных и восстанавливал ее обратно, и - ну да, мой новый индекс был создан !

17
ответ дан 30 November 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: