JPA Data Repository结果丢失其数据类型

时间:2012-09-06 12:44:40

标签: java spring-data-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 个答案:

答案 0 :(得分:1)

将我的查询结果投射为Object[]并使用此处的文档:10.4.1.2部分{{1}}解决了我的问题