Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring数据@Query映射结果问题_Java_Spring_Spring Data - Fatal编程技术网

Java spring数据@Query映射结果问题

Java spring数据@Query映射结果问题,java,spring,spring-data,Java,Spring,Spring Data,我创建了一个扩展Crudepository的存储库, 此存储库有一个带有@Query符号的方法: 代码: @Query(“选择itemType,count(*)作为User_id=:userId按itemType分组的项的计数”) 列出countItemsForUser(@Param(“userId”)长userId); 我遇到的问题是,这将返回对象的ArrayList,而不是映射列表。 我在某个地方读到JPA无法返回地图,因此我将结果填入列表> 我不知道解决这个问题或快速访问结果数据的最佳方

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

代码:

@Query(“选择itemType,count(*)作为User_id=:userId按itemType分组的项的计数”)
列出countItemsForUser(@Param(“userId”)长userId);
我遇到的问题是,这将返回对象的ArrayList,而不是映射列表。 我在某个地方读到JPA无法返回地图,因此我将结果填入列表>

我不知道解决这个问题或快速访问结果数据的最佳方法是什么。 我试过选角,但也没有成功:

for(Object item: items) {
    Map<String,Long> castedItem = (HashMap<String,Long>)item;
}
for(对象项:项){
Map castedItem=(HashMap)项;
}

请参见Hibernate官方文档中的此示例


最简单的方法是使用接口。让Spring wire查询别名 到接口getter。可在此处找到示例: 还有@SqlResultSetMapping。见:

item,循环中的对象类型没有方法getString?
for(Object item: items) {
    Map<String,Long> castedItem = (HashMap<String,Long>)item;
}
 for (Object item:items) {
   Object[] tuple = (Object[]) item;
    String itemType = (String)tuple[0];
    Long count = (Long) tuple[1];

  }