Самый простой способ добавить пользовательские индексы в схему, управляемую Hibernate? - PullRequest
0 голосов
/ 06 апреля 2019

Мой код очень похож на тот, что показан в этом вопросе: Создание пользовательской схемы Hibernate

Хотя код тот же, мой конкретный вопрос другой:

Как заставить Hibernate создавать дополнительные пользовательские индексы? Например, частичные индексы PostgreSQL, которые нельзя выразить в аннотациях?

Что я пробовал до сих пор:

  • Искал в Google
  • Искал SO
  • Прочитать документацию
  • Проверьте Javadocs

Основная причина нежелания поддерживать индексы вручную - это использование CI / CD с одноразовыми базами данных, которые перестраиваются при каждой инициализации новой среды.

1 Ответ

0 голосов
/ 06 апреля 2019

Поскольку вам нужно использовать специальный код postgresql (о котором hibernate не знает), вам придется создавать индексы вне hibernate.
Что вы можете сделать, это написать операторы индекса (вы, вероятно, знаете точные именаиз таблиц / столбцов, которые вы хотите проиндексировать) в файле .sql и запустите его сразу после того, как hibernate завершит создание базы данных.Самый простой способ сделать это - поместить этот файл в путь к классу и присвоить ему имя import.sql.Вы можете найти больше информации об этом здесь .

В любом случае, я бы настоятельно рекомендовал использовать какой-либо менеджер управления версиями базы данных (например, flyway ) вместо ретрансляции.в спящем режиме для создания таблиц.

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