2012-09-06 2 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

는 왜 봄 데이터가 암시 적으로 변환 할 수 있다고 생각합니까 내 문제 해결'[]'지도''에 반대? 그것은 어딘가에 문서화되어 있습니까? – axtavt

+0

'10.4.1.2' 절에서 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-querying-executing을 찾을 수 있었지만 여전히 ' 왜 Map 를 처리 할 수 ​​없는지 이해하지 못한다. 나는 그것이 나를 위해 일하도록 노력하고있는 그 모범을 위해 일하고있다. – Webnet

답변