Java 无法阻止Spring Data JPA在每次运行应用程序时重新创建表

Java 无法阻止Spring Data JPA在每次运行应用程序时重新创建表,java,spring,spring-boot,hibernate,jpa,Java,Spring,Spring Boot,Hibernate,Jpa,我刚开始Spring引导,并设法在PostgreSQL数据库中创建表。然后我将一个配置文件添加到我的项目中,该文件将向数据库中插入数据。然而,在我看来,代码并没有命中这个配置文件并重新创建表。我试图更改application.properties文件中的spring.jpa.hibernate.ddl auto参数,但没有任何意义,因此,在每个运行空记录的应用程序上重新创建表(在Java控制台上也可以看到,只需创建表即可)。那么,我错过了什么 应用程序。属性: 学生配置: 如果希望不重新创建表,

我刚开始Spring引导,并设法在PostgreSQL数据库中创建表。然后我将一个配置文件添加到我的项目中,该文件将向数据库中插入数据。然而,在我看来,代码并没有命中这个配置文件并重新创建表。我试图更改
application.properties
文件中的
spring.jpa.hibernate.ddl auto
参数,但没有任何意义,因此,在每个运行空记录的应用程序上重新创建表(在Java控制台上也可以看到,只需创建表即可)。那么,我错过了什么

应用程序。属性:

学生配置:


如果希望不重新创建表,spring.jpa.hibernate.ddl-auto不应为“create drop”。尝试使用“更新”或“无”,并确保您的应用程序使用该application.properties文件

尝试并更改:
spring.jpa.hibernate.ddl auto=create drop

to
spring.jpa.hibernate.ddl auto=update


application.properties

中,还有其他人使用Spring Boot和数据JPA吗?到底什么“没有任何意义”?当您将其设置为
create drop
时,在运行应用程序时确实会再次创建架构。将其设置为其他值,例如
验证
更新
。看,可能我错了,你有没有试过在
命令行运行程序上使用
@Bean
?@dariosilicy是的,没错!!!非常感谢,在
commandLineRunner
上添加
@Bean
后,问题得到了解决。非常感谢:)投票通过;)欢迎:),您可以检查最后写入的位置。demo()方法返回CommandLineRunner bean,该bean在应用程序启动时自动运行代码,同样的事情也发生了,因为它在用
@Configuration
注释的
StudentConfig
类中。我在问这个问题之前尝试了这两种方法(
spring.jpa.hibernate.ddl auto=none
和``spring.jpa.hibernate.ddl auto=update`),但即使没有重新创建这个表,配置代码没有初始化,记录也没有创建。在提问之前,我尝试了这两种方法(
spring.jpa.hibernate.ddl auto=none
和``spring.jpa.hibernate.ddl auto=update`),但即使没有重新创建表,配置代码也没有初始化,记录也没有创建。
spring.datasource.url=jdbc:postgresql://localhost:5432/student
spring.datasource.username=postgres
spring.datasource.password=******
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.format_sql=true
@Configuration
public class StudentConfig {

    CommandLineRunner commandLineRunner(StudentRepository repository) {
        return args -> {
            Student johnson = new Student(
                    "johnson@gmail.com",
                    "Johnson",
                    LocalDate.of(2000, JANUARY, 5)
            );

            Student alex = new Student(
                    "alex@gmail.com",
                    "alex",
                    LocalDate.of(2010, JANUARY, 17)
            );

            repository.saveAll(List.of(johnson, alex));
        };
    }
}