spring-data @Query映射结果问题

Jon*_*gat 5 java spring spring-data

我创建了一个扩展CrudRepository的Repository,这个存储库有一个带@Query符号的方法:

码:

@Query("select itemType, count(*) as count from Item where  User_id = :userId group by itemType")
List<Map<String, Long>> countItemsForUser(@Param("userId") Long userId);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是返回一个Object的ArrayList而不是Map的List.我已经读过JPA无法返回Map的地方,这就是我将结果填入List>的原因.

我不知道解决此问题或快速访问结果数据的最佳方法是什么.我已经尝试过铸造,但这也没有成功:

for(Object item: items) {
    Map<String,Long> castedItem = (HashMap<String,Long>)item;
}
Run Code Online (Sandbox Code Playgroud)

Pha*_*ani 4

请参阅 Hibernate 官方文档中的示例。这里

 for (Object item:items) {
   Object[] tuple = (Object[]) item;
    String itemType = (String)tuple[0];
    Long count = (Long) tuple[1];

  }
Run Code Online (Sandbox Code Playgroud)