Атрибут «hibernate.hbm2ddl.auto» для пакета - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть пакет A и пакет B с сопоставленными объектами. Я хочу, чтобы пакет A обновлялся автоматически, поэтому я установил значение update для hibernate.hbm2ddl.auto. В то же время я не хочу, чтобы отображение из пакета B автоматически применялось к таблицам в базе данных при запуске приложения. Я хочу обновить их вручную или с помощью контроля версий. Проблема в том, что я говорю о разных пакетах, а не о модулях . Так что не может быть разных файлов настроек. Как я могу решить это?

1 Ответ

0 голосов
/ 17 сентября 2018

Единственный способ, с помощью которого я могу увидеть это готовое к работе, - это если объекты в обоих пакетах управляются двумя разными SessionFactory / EntityManagerFactory экземплярами.

Если вы хотитевсе сущности управляются одним экземпляром, поэтому вы не можете сделать это прямо из коробки.

Одна из опций, которая приходит на ум, - это использовать задачу экспорта схемы Hibernate Tools .,Идея заключается в том, что вы переместите генерацию изменений схемы в автономном режиме во время сборки в файл.Затем вы можете переименовать этот файл в import.sql и поместить его в корень пути к классу вашего приложения, и Hibernate автоматически выполнит эти операторы при запуске.

Я не уверен, что задача муравья Hibernate Tools позволяет вам фильтровать интересующие вас объекты, но, возможно, если это не так, вы можете либо предоставить вторую конфигурацию, ограничив ее область действия толькосущности в пакете, которым вы хотите управлять автоматически, или используйте последующую задачу для фильтрации сгенерированного файла sql.

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