У меня есть простая схема базы данных с двумя таблицами A и B, которые были смоделированы как объекты, использующие Hibernate. Каждая строка из B имеет внешний ключ, который однозначно идентифицирует строку A.Включение или отключение индексов для внешних ключей с гибернатом
Я заметил, что если я использую Postgres как базу данных, по умолчанию индекс не создается для внешних ключей. Поскольку у меня много строк и какой-то каскад удаления, я решил настроить свой объект Hibernate на использование аннотации JPA @Index. Он работает хорошо, и я вижу, что индекс создан.
Однако по некоторым причинам мне пришлось переключиться на другую базу данных базы данных: HSQLDB. Аннотации JPA для создания моего индекса учитываются, но поскольку HSQLDB создает по умолчанию индекс для всех внешних ключей, у меня в итоге есть 2 индекса для одного и того же столбца.
Я читал, что создание индексов для внешних ключей является специфическим поставщиком базы данных (например, Oracle и Postgres не создают индексы, а MySQL и HSQLDB делают).
Мне интересно, есть ли способ включить/отключить создание индексов для внешних ключей независимо от того, что провайдер? в противном случае похоже, что мне приходится справляться с двойной индексацией.
Любая идея, комментарий, предложение приветствуются.
Благодарим вас за ответ. Это моя проблема. Интересно, есть ли способ настроить его на уровне Hibernate, по крайней мере, чтобы избежать двух индексов для одного столбца. К сожалению, на основе _lumue_ ответа, похоже, что это невозможно. – Laurent