mysql一对多关联查询分页错误解决

版权声明: https://blog.csdn.net/qq_27721169/article/details/82682652

xml问价中查询数据中包含list,需要使用collection

<resultMap id="XX" type="com.XXX.XXXX">
        <id column="o_id" jdbcType="BIGINT" property="id" />
        <result column="o_user_id" jdbcType="BIGINT" property="userId" />
        ....
        <collection property="orderProductList" ofType="com.XXXXXX.XXXXX">
            <id column="p_id" jdbcType="BIGINT" property="id" />
            <result column="p_order_id" jdbcType="BIGINT" property="orderId" />
            ....
        </collection>
    </resultMap>

这样的查询系统封装的通用分页查询是不对的,所以需要自己sql中加入分页解决

<select id="XXX" resultMap="OrderListMap">
        SELECT
        you.nick_name,
        yo.id o_id,
        yo.user_id o_user_id
        FROM
        (
        SELECT * FROM
        youpin_order
        WHERE
        1 = 1
        <if test="status != null">
            and `status` = #{status}
        </if>
        <if test="page != null and limit != null">
        LIMIT #{page},
        #{limit}
        </if>
        ) yo
        LEFT JOIN XXX yop ON yo.id = yop.order_id
        LEFT JOIN XXXX you ON yo.user_id = you.id
    </select>

传入参数的时候需要计算

(offset - 1) * limit, limit

猜你喜欢

转载自blog.csdn.net/qq_27721169/article/details/82682652
今日推荐