问题描述:
使用PageHelper、PageInfo做分页查询,通过join关联查询1对多关系时,会出现total数值与得到的数据总条数不对应。
最开始使用的是下面这样的映射关系,然后发现在new PageInfo<>(tGameList)时,得到的total数值与查询获得的总不对应。将SQL语句放到Navicat上执行发现,由于game和gameType是1对多关系,同一条game可对应多个gameType,就会并列显示在多行,导致重复计数。查阅资料得知,使用Mybatis分页插件,total统计数据条数是在resultMap映射前,所以我得到List<TGame> tGameList数据是满足我的需求,但total数值不对。
于是我就只有靠万能的百度(不是),找到了下面这种方式↓。完美解决total数值不对的问题,但是,不知道为什么gameType只得到id,拿不到其他参数。翻看了很多博主分享的都是用这种方式解决的,但我不知道我这为啥就只拿到一个id T-T。
我又花费了亿点点时间,找到了一个博主分享的另一种方式↓。SQL同上,这种方式完美解决了,total数值和gameType参数不返回问题。
到此结束,希望这两种方法能帮到你的话,可以点点赞 :)