Следуя Spring Справочному руководству по загрузке, существует несколько способов, которыми мы можем импортировать данные при запуске приложения. В сочетании с базой данных в памяти это довольно удобно для тестирования.
Параметры: создать файл с именем import.sql
, который будет выбран Hibernate, или создать файл с именем data.sql
, который будет подхвачен Spring JDBC. Обе эти работы подходят для меня.
Однако мне нравится немного разбить мои проекты, поэтому в настоящее время у меня есть модель основного домена, где есть удобный импорт для настройки основных данных, таких как некоторые пользователи, которые используются повсеместно. У меня также есть функциональные проекты, в которых полезно повторно использовать тот же импорт базовых данных, но также импортировать некоторые дополнительные данные, специфичные для этой функции.
Здесь все работает не так хорошо.
Я нашел ответ на предыдущий вопрос, где Паскаль Тивент упомянул, что свойство hibernate.hbm2ddl.import_files
можно использовать для определения списка файлов, как из Hibernate 3.6.0.Beta1. Учитывая, что мой проект импортирует 4.3.1. Final, я подумал, что, возможно, это будет доступно.
Итак, я попытался добавить следующее к моей Spring Boot application.properties
:
spring.jpa.hibernate.hbm2ddl.import_files=/another-import.sql
и
hibernate.hbm2ddl.import_files=/another-import.sql
К сожалению, ни один из них не приведет к запуску импорта.
Так что мне интересно, я только что сделал беспорядок свойств выше (вполне вероятно). Или есть что-то еще, что мне нужно сделать?
Обратите внимание, что в качестве обходного пути я заметил, что Spring JDBC запускает data.sql
после запуска Hibernate import.sql
. Так что, пока мне не нужно больше двух импортных, я могу использовать import.sql
для базовых данных, а затем импортировать импорт конкретных проектов в data.sql
. Я могу справиться с этим, но это не решение.