2012-09-06 71 views
1

我試圖讓下面的代碼顯示我的查詢結果。不幸的是它不工作。JPA數據倉庫結果丟失其數據類型

@Transactional 
public interface ContentRepository extends JpaRepository<Content,Integer>{ 

    @Query(nativeQuery=true, value="SELECT content_type, COUNT(*) FROM dbo.content WHERE status_id = :statusId GROUP BY content_type") 
    List<Map<String, Integer>> getContentCountByType(@Param("statusId")Short statusId); 

在我的業務層怎麼辦......

@Service 
public class ContentService { 
    @Transactional 
    public Map<ContentType, Integer> getContentCountByType() { 
     List<Map<String, Integer>> rawContentCount = contentRepository.getContentCountByType(Status.DRAFT); 
     Map<ContentType, Integer> contentCount = new HashMap<ContentType, Integer>(); 
     Map<String, Integer> objects = rawContentCount.get(0); 

objects結束了在變量調試器是Object[]。我不確定爲什麼它不服從我已經告訴它使用的Map<String, Integer>

我正在考慮作爲替代方案,我只能返回一個對象列表。我試圖谷歌試圖找出要搜索什麼關鍵字來找到這樣的結果。儘管理想情況下,我想避免爲這個查詢結果創建一個對象,如果它只返回Map

+1

爲什麼你認爲春節數據可以隱式轉換'[對象]''到Map'?它是否記錄在某處? – axtavt

+0

我可以在10.4.1.2節找到http://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-querying-executing,但我仍然不'不明白爲什麼它不能處理Map '。我正在努力嘗試讓它爲我工作。 – Webnet

回答

1

鑄造我的查詢結果Object[]這裏使用的文檔:在部分10.4.1.2解決了我的問題