You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot MVC中如何让ResponseEntity<Integer>返回整数并在API页显示?

问题分析与解决方案

嘿,我一眼就揪出问题根源啦!你的仓库查询语句和返回类型不匹配,这才导致Integer类型的年龄没法正确返回。

问题所在

你写的Repository查询代码是这样的:

@Query("select d.id, d.age from Student d where d.id=:id")
Integer findAgeById(Long id);

这条查询语句返回的是两个字段(id和age),实际对应的返回值是一个Object[]数组,但你的方法声明要返回单个Integer类型。这种类型不匹配会让Spring Data没法正确映射查询结果,最终studentService.retrieveAgeById(id)拿到的要么是错误值要么是null,页面自然显示不出年龄。

而获取姓名、性别能成功,是因为那些查询应该只返回了单个String字段,和方法返回类型完全匹配,所以没出问题。

修复方案

只需要修改Repository的查询语句,让它仅返回age字段就行:

@Query("select d.age from Student d where d.id=:id")
Integer findAgeById(Long id);

这样查询结果就是单个Integer值,和方法返回类型完全匹配,Spring Data能正确映射结果。

修改后重启应用,再访问http://localhost:8080/1/age,页面就会正确显示5啦!

内容的提问来源于stack exchange,提问作者Srikanth Kb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 10:03:13