Подтвердить что ты не робот

Несколько файлов импорта SQL в Spring Загрузка

Следуя 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. Я могу справиться с этим, но это не решение.

4b9b3361

Ответ 1

Если вы действительно хотите использовать префикс свойства hibernate с spring.jpa.properties., поскольку они добавляются как свойства в EntityManagerFactory. См. здесь в справочном руководстве по загрузке Spring.

spring.jpa.properties.hibernate.hbm2ddl.import_files=file1.sql,file2.sql

Однако вы также можете использовать свойства spring.datasource.data и spring.datasource.schema в своих интересах. По умолчанию они соответственно data и schema. Как вы можете видеть в классе DataSourceInitializer. Вы также можете установить их, и они берут список ресурсов, разделенных запятыми.

spring.datasource.data=classpath:/data-domain.sql,file:/c:/sql/data-reference.sql,data-complex.sql

Это становится еще лучше, потому что загрузка ресурсов также позволяет загружать ресурсы с ant шаблонами стилей.

spring.datasource.data=/META-INF/sql/init-*.sql
spring.datasource.schema=/META-INF/sql/schema-*.sql