2012-04-16 10 views
5

मैं एक भंडार है कि CrudRepository, इस भंडार ने @query अंकन के साथ एक विधि है फैली बना लिया है:वसंत-डेटा @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); 

मुद्दा मैं एम यह है कि यह वस्तु का एक ऐरेलिस्ट लौटता है और मानचित्र की सूची नहीं देता है। मैंने कहीं पढ़ा है कि जेपीए एक मानचित्र वापस नहीं कर सकता है इसलिए मैं एक सूची में परिणाम भरता हूं।

मुझे नहीं पता कि इस समस्या के आसपास काम करने का सबसे अच्छा तरीका क्या है या परिणाम डेटा को तुरंत एक्सेस करना है। मैं कास्टिंग की कोशिश की है लेकिन यह है कि ऐसा नहीं हो पाया या तो:

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

आइटम, जो कि लूप के अंदर ऑब्जेक्ट प्रकार है, में कोई तरीका नहीं है स्ट्रिंग? –

उत्तर

4

हाइबरनेट की आधिकारिक दस्तावेज में इस उदाहरण देखें। Here

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

    } 
संबंधित मुद्दे