当前使用版本(必填,否则不予处理)

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吧