Solution to the Paging Error of mysql One to many Association Query
- 2021-11-02 03:11:07
- OfStack
list is included in the query data in xml, and collection is required
<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>
The general paging query encapsulated by such a query system is wrong, so it needs to be solved by adding paging in 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>
When passing in parameters, you need to calculate
(offset - 1) * limit, limit
Summarize