Spring boot 如何使用JHipster和Spring Boot使用data.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配置会

我有一个Jhipster单片应用程序。我删除了Liquibase,我想使用data.sql文件插入初始数据。我创建了一个data.sql和data-h2.sql,其中包含插入脚本。它们位于
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
类,该类帮助我发现了问题。