You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot调用PgAdmin数据库findAll()接口报错求助

问题排查方案

1. 补全Schema配置(最可能的原因)

你的pets表在stuffed_animals schema下,但执行的SQL里没指定schema,PostgreSQL会默认查找public schema下的表,自然找不到目标表。两种解决方式:

  • 在application.properties里指定默认schema:
spring.jpa.properties.hibernate.default_schema=stuffed_animals
  • 或者在数据库连接URL里追加schema指定:
spring.datasource.url=jdbc:postgresql://localhost:5432/你的数据库名称?currentSchema=stuffed_animals

同时确认数据库账号拥有访问stuffed_animals schema的权限。

2. 实体类绑定Schema

如果实体类没明确指定所属schema,JPA会默认映射到public schema。给Pet实体类加上schema注解:

@Entity
@Table(name = "pets", schema = "stuffed_animals")
public class Pet {
    // 你的字段定义
}

3. 校验依赖版本

检查pom.xml里的PostgreSQL驱动和Spring Data JPA版本是否匹配:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

Spring Boot 3.x需要搭配42.6.0及以上版本的PostgreSQL驱动,版本不兼容会直接导致JDBC层面的异常。

4. 字段映射一致性检查

确认实体类的字段名、数据类型和数据库pets表完全匹配。PostgreSQL默认区分大小写,如果表字段是特殊命名(比如带下划线、驼峰),或者创建表时用了引号,要在实体字段上用@Column指定对应名称:

@Column(name = "birthdate")
private LocalDate birthDate;

5. 查看完整异常栈

你现在只看到上层的Spring封装异常,控制台里的Caused by部分会有PostgreSQL的具体错误码(比如42P01代表表不存在),这是最快定位问题的核心信息。

内容的提问来源于stack exchange,提问作者Crazy_Quackers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:03:11