一,查詢入參
@Data
public class ReqSupplierOrderCycleVO implements Serializable {
@ApiModelProperty("供應商編碼")
private String supplierCode;
@ApiModelProperty("地點編碼")
private String locationCode;
@ApiModelProperty("大類編碼")
private String bigCategoryCode;
}
二,分批處理
service接口及對參數分批查詢200條,查詢一次
R<List<ResSupplierOrderCycleVO>> getListParameterOrderCycleByVOs(List<ReqSupplierOrderCycleVO> vos); 分批 List<List<ParameterOrderCycleDto>> batches = Lists.partition(queryDtos, BizConstant.PROD_BATCH_SIZE); List<ParameterOrderCycle> queryResult = parameterOrderCycleMapper.selectListParameterOrderCycle(batches);
mapper接口
List<ParameterOrderCycle> selectListParameterOrderCycle(@Param("dtos") List<List<ParameterOrderCycleDto>> dtos);
mapper實現
<select id="selectListParameterOrderCycle" parameterType="java.util.List" resultMap="BaseResultMap">
<foreach item="item" index="index" collection="dtos" separator="UNION ALL">
(select
<include refid="Base_Column_List"/>
from parameter_order_cycle
<where>
(location_code, supplier_code, big_category_code) IN
<foreach item="vo" index="index" collection="item" open="(" separator="," close=")">
(#{vo.locationCode,jdbcType=VARCHAR}, #{vo.supplierCode,jdbcType=VARCHAR}, #{vo.bigCategoryCode,jdbcType=VARCHAR})
</foreach>
and submit_status = 1
</where>)
</foreach>
</select>
三,批量不分批實現
方式1
mapper實現
(select
<include refid="Base_Column_List"/>
from parameter_order_cycle
<where>
(location_code, supplier_code, big_category_code) IN
<foreach item="vo" index="index" collection="item" open="(" separator="," close=")">
(#{vo.locationCode,jdbcType=VARCHAR}, #{vo.supplierCode,jdbcType=VARCHAR}, #{vo.bigCategoryCode,jdbcType=VARCHAR})
</foreach>
and submit_status = 1
</where>)
sql打印
select
*
from
parameter_order_cycle
WHERE
(
location_code, supplier_code, big_category_code
) IN (
(
'W001', '200174', ''
) , (
'W001', '200291', ''
) , (
'W001', '200174', '1237'
) , (
'W001', '200291', '1230'
)
)
and submit_status = 1
)
方式2
List<ParameterProductShopSpace> selectByProductAndShopCode(@Param("condition") Collection<ParameterProductShopSpace> condition);
mapper實現
<select id="selectByProductAndShopCode" resultType="com.yonghui.yh.rme.srm.ordercenter.dao.entity.ParameterProductShopSpace">
SELECT * FROM
parameter_product_shop_space
<where>
<foreach collection="condition" separator="or" item="item">
(shop_code = #{item.shopCode} and product_code= #{item.productCode})
</foreach>
</where>
</select>
sql打印
SELECT
*
FROM
parameter_product_shop_space
WHERE
(
shop_code = '9010'
and product_code= '7'
)
or (
shop_code = '9010'
a