2012-04-16 6 views
5

he creado un repositorio que se extiende CrudRepository, este repositorio tiene un método con una notación @Query:muelle de datos cuestión resultado de la asignación @Query

Código:

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

El tema I' Lo que tengo es que esto devuelve una Lista de Arreglos de Objeto (s) y no una Lista de Mapa. He leído en algún lado que JPA no puede devolver un Mapa, por eso llevo el resultado en una Lista>.

No sé cuál es la mejor manera de evitar este problema o acceder rápidamente a los datos de resultados. He tratado de fundición, pero que no funcionó bien:

for(Object item: items) { 
    Map<String,Long> castedItem = (HashMap<String,Long>)item; 
} 
+0

elemento, que es del tipo Objeto dentro del bucle no tiene un método getString? –

Respuesta

4

ver este ejemplo en la documentación oficial de Hibernate. Here

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

    } 
Cuestiones relacionadas