当查询结果不是类时,JPA 查询方法的返回类型是什么?



>我在 JPA 中有这个查询:

@Query("SELECT programId,COUNT(id) FROM Therapy GROUP BY programId ORDER BY COUNT(id) DESC")
List<Object> top10ProgramsOfTherapies();

它工作得很好,但它返回了一个对象列表,我无法从中获取数据。我应该使用哪种返回类型来读取结果数据?

您还可以创建一个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();

此查询将返回对象数组列表:Object[]所以你需要像这样更改你的代码:

@Query("SELECT programId,COUNT(id) FROM Therapy GROUP BY programId ORDER BY COUNT(id) DESC")
List<Object[]> top10ProgramsOfTherapies();

对于列表中的每个itemitem[0]将保存programID值,item[1]将保存COUNT(id)值,您应该将它们转换为各自的类型,因为它们将只有object秒。

最新更新