【小知识】QueryWrapper循环or条件

背景

项目使用mybatis-plus,需要遍历一格数组,用or关联起来,但是数组外跟其他条件是and,类似

select 1 from t where  a = 1 and (b = 2 or b = 3 or b = 4)

解法

queryWrapper.and(qw -> {
    for (int i = 0; i < values.length; i++) {
        String val = values[i];
        if (i == 0) {
            qw.nested(w -> w.likeRight("b", val));
        } else {
            qw.or(w -> w.likeRight("b", val));
        }
    }
});

你可能感兴趣的:(【小知识】QueryWrapper循环or条件)