当前使用版本(必填,否则不予处理)
mybatis- 3.5.0
该问题是如何引起的?(确定最新版也有问题再提!!!)
我实在太懒,不想写一堆条件查询以及判断是否为空,以及经常要判断数据库中是否存在相同记录
建议将下列代码加入到 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl 中作为一个常用方法。
import org.apache.commons.lang3.tuple.Triple;
@Override
public List getByCondition(List, Object>> queryTriple, String excludeIds) {
QueryWrapper queryWrapper = Wrappers.query();
for (Triple, Object> triple: queryTriple) {
String condition = triple.getLeft();
Object value = triple.getRight();
if(ObjectUtil.isNotEmpty(value)){
switch (condition.toLowerCase()){
case "like":
queryWrapper.lambda().like(triple.getMiddle(), value);
break;
case "eq":
queryWrapper.lambda().eq(triple.getMiddle(), value);
break;
case "ge":
queryWrapper.lambda().ge(triple.getMiddle(), value);
break;
case "le":
queryWrapper.lambda().le(triple.getMiddle(), value);
break;
// ...
}
}
}
if(StrUtil.isNotBlank(excludeIds)){
queryWrapper.lambda().notIn(DictLang::getId, excludeIds.split(","));
}
return this.list(queryWrapper);
查询代码
List, Object>> queryTriple =new ArrayList();
queryTriple.add(Triple.of("eq", DictLang::getLangName, dictLang.getLangName()));
queryTriple.add(Triple.of("eq", DictLang::getLv, dictLang.getLv()));
List dictLangList = dictLangService.getByCondition(queryTriple, null);
重现步骤(如果有就写完整)
报错信息
Comment From: miemieYaho
你自己写utils吧