本文主要是介绍MyBatisPlus and和or的混合使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有一种场景,查询时必须满足条件1,同时必须满足条件2或条件3,即 a and b or a and c
表达式写法如下:
LambdaQueryWrapper<AttrValue>productAttrValueQueryWrapper1=new LambdaQueryWrapper<>();
productAttrValueQueryWrapper1.in(!CollectionUtils.isEmpty(spuIds),AttrValue::getSpuId, spuIds).and(qw->qw.in(AttrValue::getAttrName, functions).or().in(AttrValue::getAttrValue, functions));List<AttrValue> AttrValueList = productAttrValueMapper.selectList(productAttrValueQueryWrapper1);
以下写法是错误的,
LambdaQueryWrapper<AttrValue>productAttrValueQueryWrapper1=new LambdaQueryWrapper<>();
productAttrValueQueryWrapper1.in(AttrValue::getSpuId, spuIds);
productAttrValueQueryWrapper1.in(AttrValue::getAttrName, functions).or().in(AttrValue::getAttrValue, functions);
List<AttrValue> AttrValueList = productAttrValueMapper.selectList(productAttrValueQueryWrapper1);
这篇关于MyBatisPlus and和or的混合使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!