当前位置: 首页 > 知识库问答 >
问题:

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

柯骏
2023-03-14

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

应用程序.属性:

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));
        };
    }
}

共有1个答案

颛孙铭
2023-03-14

尝试更改:spring.jpa.hibernate.ddl-auto=create-drop到spring.jpa.hibernate.ddl-auto=update

在Application.Properties中

 类似资料:
  • 我正在尝试运行,但它似乎没有按应有的方式工作。我正在尝试以下命令: 创建react应用程序我的应用程序 cd我的应用程序 npm启动 如果您可以帮助此处输入图像描述,那么在尝试运行时会出现以下错误

  • 我有以下ThreadPoolTaskExecator2配置 在我的公共类AdminService中,我有两个方法。 void triggerJob() 布尔执行sql(字符串sql) 如何将ThreadPoolTaskExecutor插入triggerJob方法,以便在第一个方法中调用executeSql时创建新线程。 在triggerjob中,我有一个基于条件调用executeSql的循环。 我

  • 我有一个JavaFX项目,它使用Hibernate ORM和Maven。每次运行项目时,我都要等待很长时间才能运行,因为Maven一直在解包Hibernate依赖项。这是必要的吗?或者我可以关掉它,为什么要一遍又一遍地打开所有东西而不是只打开一次?日志如下所示: 我的POMfile看起来是这样的: 谢谢你!

  • 我有一个带有cron作业spring boot项目。作业只应运行一次。它应该再次触发,只有当应用程序崩溃或应用程序重新启动。对此有什么cron表达式吗?或者有什么办法可以实现这一点?

  • 我在android中使用BottomNavigationView来制作一个像Instagram一样的应用程序。我在NavigationTabs中使用片段。应用程序有5个标签初始我已经设置为活动标签的中间标签和加载它一旦应用程序启动。当我单击任何其他选项卡时,就会进行网络调用并加载数据。现在,当我按下on back按钮或再次单击last选项卡(在启动时加载)时,片段将被重新创建,并进行网络调用以加载

  • 所以,在我的开发Mac上使用我的rails应用程序创建了一个正常工作的postgres db实例,但是随着我从头开始构建模型(即添加、删除、更改列),迁移变得难以管理,所以我决定开始清理。运行rake db: dro后,我无法通过rake db: create重新创建。我只得到以下信息: 无法为 {“适配器”= 创建数据库 我想我需要在postgres中创建用户,但是它不应该从初始设置就存在吗?