在开发的时候,使用PageHelper分页查询,但是查询出来的数据错乱了,不同的页数会有一样的重复数据,但是返回数据的总条数却是正确的。
分页代码如下:
Page<Object> page = PageHelper.startPage(pageNo, pageSize);
List<SmMaterialImageVo> smMaterialImages = smMaterialImageMapper.selectAllPage(order);
List<SmMaterialImageVo> selectAllPage(@Param("order") Integer order);
<select id="selectAllPage" resultMap="BaseResultMap">
SELECT
*
FROM
SM_MATERIAL_IMAGE img
<where>
img.IS_DELETED = 0
<if test="order != null and order == 1">
ORDER BY img.UPLOAD_TIME desc
</if>
<if test="order != null and order == 2">
ORDER BY img.UPLOAD_TIME asc
</if>
</where>
</select>
我发现是 ORDER BY img.UPLOAD_TIME desc 这两条语句的问题。在网上看了一下,试着在他后面也进行了 id 的排序,问题就解决了。
代码如下:
<select id="selectAllPage" resultMap="BaseResultMap">
SELECT
*
FROM
SM_MATERIAL_IMAGE img
<where>
img.IS_DELETED = 0
<if test="order != null and order == 1">
ORDER BY img.UPLOAD_TIME desc,img.IMAGE_ID desc
</if>
<if test="order != null and order == 2">
ORDER BY img.UPLOAD_TIME asc,img.IMAGE_ID asc
</if>
</where>
</select>
虽然我也不知道为什么......记录一下。