Springboot动态sql参数对象里有list用foreach查询

1.参数实体类如下:

public class EquipmentDto extends PageDTO {
private String keyWord
private List departmentIds;
public String getKeyWord() {
return keyWord;
}
public void setKeyWord(String keyWord) {
this.keyWord = keyWord;
}
public List getDepartmentIds() {
return departmentIds;
}
public void setDepartmentIds(List departmentIds) {
this.departmentIds = departmentIds;
}
2.Mapper

 List<EquipmentVO> selectEquipmentByDepartemntAndName(@Param("equipmentDto")EquipmentDto equipmentDto);
3. 想在数据库里查出e.name包含keyWord的departmentIds集合中所有关联的设备

item表示集合中每一个元素进行迭代时的别名,
index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,
open表示该语句以什么开始,
separator表示在每次进行迭代之间以什么符号作为分隔 符,
close表示以什么结束。
SQL如下:
<select id="selectEquipmentByDepartemntAndName" resultMap="EquipmentVO">
  select e.equipment_id,d.name,e.model,e.state,e.number,
  e.name  as ename
  from equipment e
  left join department d on e.department_id = d.department_id
  <where>
    <if test="equipmentDto.keyWord != null">
      e.name like concat(concat("%",#{equipmentDto.keyWord}),"%")
    </if>
    <if test="equipmentDto.departmentIds != null and equipmentDto.departmentIds.size() > 0">
      and e.department_id in
     <foreach item="item" collection="equipmentDto.departmentIds" separator="," index="index" open="(" close=")" >
        #{item}
    </foreach>
    </if>
  </where>
  ORDER BY last_check_time DESC
</select>

}```

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值