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 楼答案
若查询日期序列,为什么需要PublicHoliday的对象列表?框架不知道如何将日期转换为模型实例
//编辑
如果要使用Spring数据,最简单的方法是将查询结果集合更改为
List<Date>
,如下所示:通过这种构造,JPA将知道如何将查询结果(日期序列)转换为这些日期的正确集合
我建议更改该方法的名称,因为它是由Spring数据生成的默认查询名称(请看:https://docs.spring.io/spring-data/jpa/docs/2.1.8.RELEASE/reference/html/#jpa.query-methods)