有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaMySQL有一个包含2列的表。如何生成只有一列的列表?

MySQL数据库包括一个具有两列的表。我试图生成一个列表,只显示一列的数据。我尝试了@Query,但它抛出了一个铸造错误。还有其他可能的选择吗?感谢您对这位新手的指导。谢谢大家!

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

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

来自web的错误消息:

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]

共 (1) 个答案

  1. # 1 楼答案

    若查询日期序列,为什么需要PublicHoliday的对象列表?框架不知道如何将日期转换为模型实例

    //编辑

    如果要使用Spring数据,最简单的方法是将查询结果集合更改为List<Date>,如下所示:

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

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

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