Mybatis-plus and|or 循环条件
mybatis-plus and|or 循环条件
目标sql为:
select
user_name , user_type , user_class , user_age
from user
where
user_type = ‘1’
and (
(user_accountno = ? and user_bankname = ?)
or
(user_accountno = ? and user_bankname = ?)
);
【问题:条件是一个List需要循环时,怎么使用QueryWrapper?】
【注意一下几点】:
- 条件类型必须写 (反正我是写了之后才可以使用下面的wrapper.or()方法才可调用的);
- 使用lambda表达式 ;
【结果】
QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
queryWrapper.and(wrapper -> {
for(BankInfo info: bankinfoList){
wrapper.or()
.eq("user_accountno",info.getAccountNo())
.eq("user_bankname",info.getBankName());
}
});
List<User> users = userMapper.selectList(queryWrapper);