【问题标题】:Response from query couldn't map to pojo class spring boot来自查询的响应无法映射到 pojo 类 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&lt;Object&gt; 得到响应时,它可以在没有 pojo 类的情况下正常工作。但是我需要通过 pojo 类来避免嵌套数组。

【问题讨论】:

  • 尝试nativeQuery = false并在查询中输入QuestionJsonTotalAnswer的完整包名
  • @MortezaJalambadani 他出于某些原因使用本机查询,他在那里提到过

标签: mysql sql spring spring-boot spring-data-jpa


【解决方案1】:

你需要像这样使用投影。

@Query(value="SELECT q.question FROM mydb.question q", nativeQuery=true)
List<QuestionJsonTotalAnswer> showAnswersOfQuestions();

public interface QuestionJsonTotalAnswer {
    String getQuestion();
} 

【讨论】:

    猜你喜欢
    • 2019-02-12
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 2017-07-26
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多