来自查询的响应无法映射到 pojo 类 spring boot
Posted
技术标签:
【中文标题】来自查询的响应无法映射到 pojo 类 spring boot【英文标题】:Response from query couldn't map to pojo class spring boot 【发布时间】:2019-09-27 00:49:06 【问题描述】:查询的每个响应都应该映射到一个 poja 类。
我写了一个原生查询
@Query(value="SELECT new QuestionJsonTotalAnswer(q.question) FROM mydb.question q", nativeQuery=true)
List<QuestionJsonTotalAnswer> showAnswersOfQuestions();
转换器类
public class QuestionJsonTotalAnswer
String question;
// constructors, getters and setters
但错误是:
您的 SQL 语法有错误;检查手册 对应于您的 mysql 服务器版本,以便使用正确的语法 在第 1 行靠近 '(q.question) FROM mydb.question q'
在 application.properties 中
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
注意:当我通过List<Object>
得到响应时,它可以在没有 pojo 类的情况下正常工作。但是我需要通过 pojo 类来避免嵌套数组。
【问题讨论】:
尝试nativeQuery = false
并在查询中输入QuestionJsonTotalAnswer
的完整包名
@MortezaJalambadani 他出于某些原因使用本机查询,他在那里提到过
【参考方案1】:
你需要像这样使用投影。
@Query(value="SELECT q.question FROM mydb.question q", nativeQuery=true)
List<QuestionJsonTotalAnswer> showAnswersOfQuestions();
public interface QuestionJsonTotalAnswer
String getQuestion();
【讨论】:
以上是关于来自查询的响应无法映射到 pojo 类 spring boot的主要内容,如果未能解决你的问题,请参考以下文章