我正在尝试使用以下代码来显示我的查询结果。不幸的是它没有用。
@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
!
答案 0 :(得分:1)
将我的查询结果投射为Object[]
并使用此处的文档:10.4.1.2
部分{{1}}解决了我的问题