Spring boot 如何使用JHipster和Spring Boot使用data.sql加载数据
我有一个Jhipster单片应用程序。我删除了Liquibase,我想使用data.sql文件插入初始数据。我创建了一个data.sql和data-h2.sql,其中包含插入脚本。它们位于Spring boot 如何使用JHipster和Spring Boot使用data.sql加载数据,spring-boot,jhipster,Spring Boot,Jhipster,我有一个Jhipster单片应用程序。我删除了Liquibase,我想使用data.sql文件插入初始数据。我创建了一个data.sql和data-h2.sql,其中包含插入脚本。它们位于src/main/resources下。但似乎没有插入任何数据 如何在启动期间使用data.sql插入数据,而不使用Liquibase?注释spring.datasource.type属性并添加spring.jpa.hibernate.create drop属性有助于解决此问题。我认为一些jhipster配置会
src/main/resources
下。但似乎没有插入任何数据
如何在启动期间使用data.sql插入数据,而不使用Liquibase?注释
spring.datasource.type
属性并添加spring.jpa.hibernate.create drop
属性有助于解决此问题。我认为一些jhipster配置会覆盖默认的spring引导配置
下面是我如何提出此解决方案的:
调试DataSourceInitializedPublisher.PublisheventFrequeuired
时,我看到以下行返回了一个null
引用:
private void publishEventIfRequired(EntityManagerFactory entityManagerFactory) {
DataSource dataSource = findDataSource(entityManagerFactory);
...
}
我在application-dev.yml
中注释了spring.datasource.type
属性。这样,spring自动切换到tomcat连接池
然后,我发现要在配置中定义的DataSourceInitializedPublisher.isiinitializedatabase
必需spring.jpa.hibernate.hbm2ddl.auto
属性:
private boolean isInitializingDatabase(DataSource dataSource) {
...
if (hibernate.containsKey("hibernate.hbm2ddl.auto")) {
return true;
}
return false;
}
添加缺少的属性后,spring boot开始执行data.sql
文件
更新
对于那些希望执行特定于平台的data.sql
文件(如data-h2.sql
)的用户,还应添加以下属性:
spring.datasource.platform=h2
更新
对于那些需要将存储在csv文件中的默认Jhipster数据转换为sql格式的人,您可以参考以下要点:
注释
spring.datasource.type
属性并添加spring.jpa.hibernate.create drop
属性有助于解决此问题。我认为一些jhipster配置会覆盖默认的spring引导配置
下面是我如何提出此解决方案的:
调试DataSourceInitializedPublisher.PublisheventFrequeuired
时,我看到以下行返回了一个null
引用:
private void publishEventIfRequired(EntityManagerFactory entityManagerFactory) {
DataSource dataSource = findDataSource(entityManagerFactory);
...
}
我在application-dev.yml
中注释了spring.datasource.type
属性。这样,spring自动切换到tomcat连接池
然后,我发现要在配置中定义的DataSourceInitializedPublisher.isiinitializedatabase
必需spring.jpa.hibernate.hbm2ddl.auto
属性:
private boolean isInitializingDatabase(DataSource dataSource) {
...
if (hibernate.containsKey("hibernate.hbm2ddl.auto")) {
return true;
}
return false;
}
添加缺少的属性后,spring boot开始执行data.sql
文件
更新
对于那些希望执行特定于平台的data.sql
文件(如data-h2.sql
)的用户,还应添加以下属性:
spring.datasource.platform=h2
更新
对于那些需要将存储在csv文件中的默认Jhipster数据转换为sql格式的人,您可以参考以下要点:
看起来像是复制品,但这并不是我问题的答案。我想使用Spring(
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html#howto-初始化-a-database-using-spring-jdbc
)。顺便说一句,作者引用了帮助我发现问题的DataSourceInitializer
类。看起来像是重复的,这并不是我问题的答案。我想使用Spring(https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html#howto-初始化-a-database-using-spring-jdbc
)。顺便说一下,作者引用了DataSourceInitializer
类,该类帮助我发现了问题。