2012-04-16 6 views
5

Ich habe ein Repository erstellt, die CrudRepository erstreckt, dieses Repository ein Verfahren mit einer @Query Notation hat:feder Daten @Query Mapping-Ergebnis Ausgabe

Code:

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

Das Problem I‘ m have ist, dass dies eine ArrayList von Objekten und nicht eine Liste von Map zurückgibt. Ich habe irgendwo gelesen, dass JPA keine Map zurückgeben kann, deshalb stopfe ich das Ergebnis in eine List>.

Ich weiß nicht, was der beste Weg ist, um dieses Problem zu arbeiten oder schnell die Ergebnisdaten zugreifen. Ich habe versucht, Casting, aber das hat nicht funktioniert entweder:

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

Element, das vom Typ Objekt innerhalb der Schleife hat keine Methode getString? –

Antwort

4

dieses Beispiel finden Sie in der offiziellen Dokumentation von Hibernate. Here

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

    }