首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行SpringBoot应用程序时,由于找不到列Id而出现错误?

问运行SpringBoot应用程序时,由于找不到列Id而出现错误?
EN

Stack Overflow用户
提问于 2020-07-08 17:19:53
回答 1查看 351关注 0票数 0

我正在尝试获取基于photoId的图像路径,但由于找不到id而出错

我的实体类:

代码语言:javascript
复制
 @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="pid")
    private int pid;
    @Column(name="imagepath")
    private String imagepath;
    @Column(name="photoid")
    private int  photoid;

和存储库

代码语言:javascript
复制
 @Query(value = "SELECT c.imagepath FROM photos AS c WHERE c.photoid = :photoid", 
                   nativeQuery = true)
            List<PhotoModels> getImagePath(int photoid);

StackTrace:-

代码语言:javascript
复制
Hibernate: 
    SELECT
        c.imagepath 
    FROM
        photos c 
    WHERE
        c.photoid = ?
2020-07-08 15:08:48.954  WARN 16424 --- [nio-8990-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: S0022
2020-07-08 15:08:48.954 ERROR 16424 --- [nio-8990-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper   : Column 'pid' not found.
2020-07-08 15:08:48.956 ERROR 16424 --- [nio-8990-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [SELECT c.imagepath FROM photos c WHERE c.photoid = ?]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query] with root cause

java.sql.SQLException: Column 'pid' not found.
EN

回答 1

Stack Overflow用户

发布于 2020-07-09 02:35:26

请参阅以下内容。

  1. 请验证@Id的导入语句。导入

可能有误

  1. 验证表中是否存在列。

  1. 请更正您的SQL查询,因为JPA不允许您在原生查询中选择特定列,并将它们直接绑定到实体。或者选择全部或将特定列绑定到DTO对象,或者处理查询结果,然后将结果绑定到实体对象,或者使用JPQL构造函数方法从原生查询中获取特定列,该查询将直接映射到实体。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62791525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档