【问题标题】:MySQL has a table with 2 columns. How to generate list with only single column?MySQL 有一个包含 2 列的表。如何生成只有单列的列表?
【发布时间】:2019-05-22 17:16:50
【问题描述】:

MySQL 数据库包含一个包含两列的表。我正在尝试生成一个列表以仅显示一列的数据。我已经尝试过@Query,但它抛出了 Casting 错误。还有其他可能的选择吗?在这里感谢这个新手的一些指导。谢谢!

当我删除 @Query 时,两列都正确地从 mySQL 中提取,因此连接没有问题。

@Query("select p.date from PublicHoliday p" )
    List<PublicHoliday> findAll();
    List<PublicHoliday> phList = phRepo.findAll();

来自网络的错误消息:

Failed to convert from type [java.util.ArrayList<?>] to type [@org.springframework.data.jpa.repository.Query java.util.List<sg.edu.nus.lms1.model.PublicHoliday>] for value '[2019-05-19, 2019-05-20, 2019-06-04, 2019-08-09]'; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [@org.springframework.data.jpa.repository.Query sg.edu.nus.lms1.model.PublicHoliday]

即使我在代码中将其更改为 ArrayList:

Failed to convert from type [java.util.ArrayList<?>] to type [@org.springframework.data.jpa.repository.Query java.util.ArrayList<sg.edu.nus.lms1.model.PublicHoliday>] for value '[2019-05-19, 2019-05-20, 2019-06-04, 2019-08-09]'; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [@org.springframework.data.jpa.repository.Query sg.edu.nus.lms1.model.PublicHoliday]

【问题讨论】:

  • 您需要一个 RowMapper 来接收 java.sql.Date 并返回一个 PublicHoliday。为什么需要 JPA?从 JdbcTemplate 开始。

标签: java mysql spring


【解决方案1】:

如果您查询日期序列,为什么会期望 PublicHoliday 的对象列表?框架不知道如何将日期转换为模型实例。

//编辑

如果要使用 Spring Data,最简单的方法是将查询结果集合更改为 List&lt;Date&gt;,如下所示:

@Query("select p.date from PublicHoliday p" )
List<Date> findAll();

通过这样的构造,JPA 将知道如何将您的查询结果(日期序列)转换为这些日期的正确集合。

我建议更改该方法的名称,因为它是 Spring Data 生成的默认查询名称(查看:https://docs.spring.io/spring-data/jpa/docs/2.1.8.RELEASE/reference/html/#jpa.query-methods

【讨论】:

  • 第一列为Date类型,第二列为String类型。
  • 感谢一些关于如何从这种类型的表中列出的指导......提前谢谢你!
猜你喜欢
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多