mysql - 运行 SpringBoot 应用程序时出现 Column Id not Found 错误?
问题描述
我正在尝试根据 photoId 获取图像路径,但由于找不到 id 而出现错误
我的实体类:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="pid")
private int pid;
@Column(name="imagepath")
private String imagepath;
@Column(name="photoid")
private int photoid;
和存储库
@Query(value = "SELECT c.imagepath FROM photos AS c WHERE c.photoid = :photoid",
nativeQuery = true)
List<PhotoModels> getImagePath(int photoid);
堆栈跟踪:-
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.
解决方案
请参阅以下内容。
请验证您对@Id 的导入声明。可能是错误的导入
验证表中是否存在列。
请更正您的 SQL 查询,因为 JPA 不允许您在本机查询中选择特定列并将它们直接绑定到实体。选择所有或将特定列绑定到 DTO 对象或处理查询结果,然后将结果绑定到实体对象或使用 JPQL 新构造函数方法从将直接映射到实体的本机查询中获取特定列。
推荐阅读
- python - 需要熊猫中的行值列表
- linux - wget failure(404) 用于下载整个页面,包括来自博客平台的图像
- next.js - 即使在 android 上工作,amp 应用程序横幅也不会在 Safari 上显示
- html - 使用角度在html中显示枚举值
- azure-devops - 为什么没有从上游源下载特定版本的 npm 包?
- c - 需要帮助解决 C 中的分段错误
- sql - 重新加入 SQL Server 中的同一张表
- prestashop - 产品特征长度的 Prestashop 问题
- laravel - Laravel 查询以列出结果
- regex - 使用正则表达式从 Tensorflow 2 中的 tf.Tensor 中提取字符串?