首页 > 解决方案 > 在 Spring Boot 2 的 postresql 连接上找不到表

问题描述

我正在尝试从一个非常基本的 SpringBootProject (用于培训目的)执行与本地 postgresql 数据库之间的基本连接。

# configure postgresql
spring.datasource.platform=postgres
spring.datasource.jdbc-url=jdbc:postgresql://localhost:5432/db
spring.datasource.username=postgres
spring.datasource.password=

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform = org.hibernate.dialect.PostgreSQL94Dialect
 
spring.jpa.hibernate.ddl-auto=none

到目前为止,我已经设法让它编译和运行......但是当我试图访问我的数据库时,我得到一个“找不到表“FILMS””错误(org.h2.jdbc.JdbcSQLException)。当我从 data.sql 插入数据时,我得到了插入的电影。但是没有这个初始化器,我无法从我的数据库中获取数据......

未找到表“电影”;SQL 语句:

从电影film0_中选择film0_.code作为code1_0_,film0_.date_prod作为date_pro2_0_,film0_.did作为did3_0_,film0_.kind作为kind4_0_,film0_.title作为title5_0_从电影film0_ [42102-197]

2018-07-26 12:24:18.151 错误 10376 --- [nio-9000-exec-1] oaccC[.[.[/].[dispatcherServlet]:Servlet.service() 用于 servlet [dispatcherServlet] path [] 抛出异常 [请求处理失败;嵌套异常是 org.springframework.dao.InvalidDataAccessResourceUsageException:无法准备语句;SQL [从电影film0_中选择film0_.code作为code1_0_,film0_.date_prod作为date_pro2_0_,film0_.did作为did3_0_,film0_.kind作为kind4_0_,film0_.title作为title5_0_];嵌套异常是 org.hibernate.exception.SQLGrammarException: could not prepare statement] 根本原因

org.h2.jdbc.JdbcSQLException:表“FILMS”非 trouvée

Spring boot 版本为 2.03 RELEASE;postgresql 连接器和服务器的都是 9.4。我正在使用spring boot parent starter,以及data-jpa-starter(没有定义额外的hibernate/jpa依赖)。

源代码在这里

我的 postresql 服务器启动了,数据库“db”存在,并且它的表 public.“FILMS”充满了数据......

关于我在做什么(或不理解)错误的任何想法?

标签: postgresqlspring-bootspring-data-jpa

解决方案


在您的应用程序属性文件中尝试 spring.jpa.hibernate.ddl-auto=validate

它将尝试检查您的数据库中的表


推荐阅读