gpt4 book ai didi

java - Spring 数据库初始化仅在应用程序重启后才有效

转载 作者:行者123 更新时间:2023-11-30 12:01:57 27 4
gpt4 key购买 nike

我正在用 Java 完成一个使用 Rest api 的培训项目,与 springboot和一个 postgresql数据库。我试图在启动时用 schema.sql 初始化数据库, 和 data.sql .创作与data injections当我通过 PgAdmin 直接查看数据库时工作正常, 使用该配置文件。

spring.datasource.url = jdbc:postgresql://localhost:5432/db_test
spring.datasource.username = adm_library
spring.datasource.password = admin
spring.datasource.driver-class-name = org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect
#hibernate.jdbc.lob.non_contextual_creation=true
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false
spring.datasource.initialization-mode=always
#spring.jpa.hibernate.ddl-auto = none

但是,如果我尝试立即使用该应用程序,我会得到

org.postgresql.util.PSQLException: ERREUR: the relation « book » doesn't exists

这里导致错误的实体是“书”,因为我尝试检索书籍,但如果我尝试检索用户等,它可能是“用户”...我找到了一种无需重启应用程序即可使其正常工作的方法

spring.datasource.initialization-mode=always

然后就好了。对这种行为有什么解释吗?谢谢!

最佳答案

Spring Boot automatically creates the schema of an embedded DataSource. This behavior can be customized by using the spring.datasource.initialization-mode property.

例如,如果您希望始终初始化 DataSource 而不管其类型:

spring.datasource.initialization-mode=always

可以在 Java-Doc 的 Java 文档中查看更多详细信息和 Spring Documentation .

关于java - Spring 数据库初始化仅在应用程序重启后才有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083940/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com