我在JPA中有这个查询:
@Query("SELECT programId,COUNT(id) FROM Therapy GROUP BY programId ORDER BY COUNT(id) DESC")
List<Object> top10ProgramsOfTherapies();
它运行良好,但它返回一个对象列表,我无法从中获取数据。我应该使用什么返回类型来读取结果数据?
答案 0 :(得分:3)
你也可以创建一个DTO类,例如TherapyDto
,它将有一个带有2个参数的构造函数并以这种方式使用它:
@Query("SELECT new com.my.TherapyDto(programId,COUNT(id)) FROM Therapy GROUP BY programId ORDER BY COUNT(id) DESC")
List<TherapyDto> top10ProgramsOfTherapies();
答案 1 :(得分:2)
此查询将返回一个对象列表:Object[]
,因此您需要更改代码:
@Query("SELECT programId,COUNT(id) FROM Therapy GROUP BY programId ORDER BY COUNT(id) DESC")
List<Object[]> top10ProgramsOfTherapies();
对于列表中的每个item
:item[0]
将保留programID
值,item[1]
将保留COUNT(id)
值,您应该投射它们他们各自的类型只是object
s。