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

Java项目数据迭代两次导致点赞数重复显示问题排查求助

问题原因

你有两处逻辑错误导致出现重复点赞数显示的问题:

  1. Controller层LikeCount HashMap的键值存储颠倒
    你现在的存储逻辑是把点赞数作为键、帖子ID作为值,完全搞反了两者的映射关系,你需要的是通过帖子ID查询对应点赞数,所以应该把帖子ID设为键,点赞数设为值。
  2. Thymeleaf模板层错误遍历全量点赞Map
    你在每个帖子的点赞数展示位置遍历了整个likeCount Map,自然会把所有帖子的点赞数都挨个输出到当前帖子下面。

修复代码

1. Controller层修改

找到Controller里的循环部分,修改LikeCount的存储逻辑:

for(ProfileDto GetLikeCount: GetUserWithPost)
{
    Integer GetTotalLike = this.pojoService.getTotalLike(GetLikeCount.getPost_id());
    // 把键值反过来,键存帖子ID,值存对应点赞数
    LikeCount.put(GetLikeCount.getPost_id(), GetTotalLike);
}

2. Thymeleaf模板层修改

删掉点赞区域的遍历逻辑,直接根据当前帖子ID从likeCount中取值即可:

<div class='like-style'>
    <!-- 去掉原有的遍历逻辑,直接根据当前post_id取对应点赞数 -->
    <span class='like-count' th:id='like-count + ${ExtractListOfSubData.post_id}' th:text="${likeCount.get(ExtractListOfSubData.post_id)}"></span>
    <label>like</label>
</div>

修复完成后即可实现每个帖子只展示自身对应点赞数的效果。


内容的提问来源于stack exchange,提问作者Faheem azaz Bhanej

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:15:02