mybatisplus的or
时间: 2023-10-02 10:11:55 浏览: 120
mybatis-plus
5星 · 资源好评率100%
MyBatisPlus中的or()方法用于在查询条件中添加"或"关系的条件。它可以通过lambda表达式的方式来构建查询条件,例如使用eq()、like()等方法来添加具体的条件。[1]
使用or()方法可以实现复杂的查询条件的组合,尤其是在涉及到有优先级的连接时非常有用。比如,当查询条件类似于 A and (B or C) and D 的情况下,直接拼接会导致成为 A and B or C and D,这是不正确的连接方式。在这种情况下,可以使用or(Consumer consumer)和and(Consumer consumer)这两个方法来正确地构建查询条件。
使用or(Consumer consumer)方法时,参数为Consumer类型,会在连接处生成两对括号,以此提高条件的优先级。示例如下:
QueryWrapper<AttrEntity> queryWrapper = new QueryWrapper<AttrEntity>().eq("attr_type", "base".equalsIgnoreCase(type) ? 1 : 0);
queryWrapper.and(qr -> qr.eq("attr_id", key).or().like("attr_name", key));
queryWrapper.and(qr -> qr.eq("catelog_id", catelogId));
以上代码中,使用or()方法将"attr_id = key"和"attr_name like key"这两个条件组合为一个"或"关系的条件,而and()方法则将这个条件与"catelog_id = catelogId"这个条件进行了"与"关系的连接。
通过使用or()和and()方法,可以更灵活地构建复杂的查询条件,提高查询的精确度和效率。
阅读全文