mybatis查询优化之collection,一对多查询

版权声明:本文为博主原创文章,发现错误请谅解并提醒博主。 https://blog.csdn.net/qq_36430463/article/details/79086183

上代码

//简单订单实体
public class Order {
    private String orderid;
    private String price;
    private List<OrderGoods> goods;
}
//简单订单包含商品实体
public class OrderGoods{
    private String orderid;
    private String goodsCode;
    private Integer buyNUM;
    private String goodsNAME;
}

//mybatis.xml文件
<select id="searchOrdersAll" parameterType="com.entity.vo.OrderSearch" resultMap="orderMap">
        SELECT * FROM
        Order  
        LEFT JOIN Order_Goods 
        ON Order.orderid=Order_Goods.orderid 
        LIMIT 0,20
</select>

<resultMap type="com.entity.Order" id="orderMap">
     <result column="ORDER_ID" property="orderid"/>
     <result column="PRICE" property="price"/>
    <collection property="goods" ofType="com.entity.OrderGoods"        resultMap="ordergoodsMap" />  
</resultMap>
<resultMap type="com.entity.OrderGoods" id="ordergoodsMap">
     <result column="ORDER_ID" property="orderid"/>
     <result column="ORDER_ID" property="goodsCode"/>
     <result column="BUY_NUM" property="buyNUM"/>
     <result column="GOODS_NAME" property="goodsNAME"/> 
</resultMap>

返回结果为List<Order>

今天做订单优化发现代码先返回订单,在根据订单ID去查询订单包含商品,这样在查询大数量时明显变慢,处理方法一就是上边方法,方法二就是把先查询订单并返返回页面显示,查看订单详情时在查询选中订单详情,累死懒加载。因项目页面要直接显示所有订单及详情,所以我用的方法一。

猜你喜欢

转载自blog.csdn.net/qq_36430463/article/details/79086183