1

我正在尝试获取以下代码来显示我的查询结果。不幸的是,它不起作用。

@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

4

1 回答 1

1

将我的查询结果转换为Object[]并使用此处的文档:http: //docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-querying-executing at section10.4.1.2解决了我的问题

于 2012-09-06T13:47:33.897 回答