mybatis-plus ${ew.customSqlSegment} 使用的史诗级大坑
mybatis-plus ${ew.customSqlSegment} 使用的史诗级大坑
今天在使用mybatis-plus的时候偷懒${ew.customSqlSegment} 构造自定义sql结果。
${ew.customSqlSegment} 一直为“ ”。
本来以为是自己sql写错了,方法换来换去还是不行。
select id="mySelectPage" resultType="Customer">select * from (select a.*,concat(concat(b.name,'-'),b.employee_id) as 'uploadUserName' from customer a,user bwhere a.upload_user_id = b.id ) as c${ew.customSqlSegment}
结果输出一看
System.out.println(queryWrapper.getCustomSqlSegment());
System.out.println(queryWrapper.getSqlSelect());
System.out.println(queryWrapper.getSqlSegment());
全是空
最后发现在官方的备注中
/*** 获取自定义SQL 简化自定义XML复杂情况* <p>使用方法</p>* <p>`自定义sql` + ${ew.customSqlSegment}</p>* <p>1.逻辑删除需要自己拼接条件 (之前自定义也同样)</p>* <p>2.不支持wrapper中附带实体的情况 (wrapper自带实体会更麻烦)</p>* <p>3.用法 ${ew.customSqlSegment} (不需要where标签包裹,切记!)</p>* <p>4.ew是wrapper定义别名,可自行替换</p>*/public String getCustomSqlSegment() {MergeSegments expression = getExpression();if (Objects.nonNull(expression)) {NormalSegmentList normal = expression.getNormal();String sqlSegment = getSqlSegment();if (StringUtils.isNotBlank(sqlSegment)) {if (normal.isEmpty()) {return sqlSegment;} else {return Constants.WHERE + StringPool.SPACE + sqlSegment;}}}return StringPool.EMPTY;}
而我刚好触犯第二条,我直接用实体类构造的queryWrapper,所以一直是null。
被烦了一天,特此记录!!!
mybatis-plus ${ew.customSqlSegment} 使用的史诗级大坑相关推荐
- mybatis plus中的${ew.sqlSegment},${ew.sqlSelect},${ew.customSqlSegment},${ew.sqlSet}使用
ew是mapper方法里的@Param(Constants.WRAPPER) Wrapper queryWrapper对象 首先判断ew.emptyOfWhere是否存在where条件,有的话再拼接上 ...
- mybatis plus中的${ew.sqlSegment},${ew.sqlSelect},${ew.customSqlSegment}使用
ew是mapper方法里的@Param(Constants.WRAPPER) Wrapper queryWrapper对象 首先判断ew.emptyOfWhere是否存在where条件,有的话再拼接上 ...
- Mybatis Plus ${ew.sqlSegment} 与 ${ew.customSqlSegment}的使用区别
<where>${ew.sqlSegment} </where> 而使用${ew.customSqlSegment} 则省略 <where></where&g ...
- Mybatis Plus ${ew.sqlSegment} 与 ${ew.customSqlSegment}
<where>${ew.sqlSegment} </where> 而使用 ${ew.customSqlSegment} 则省略 <where></where& ...
- MybatisPlus_${ew.sqlSelect},${ew.sqlSet},${ew.sqlSegment},${ew.customSqlSegment}的使用
说明: ${ew.sqlSelect} 拼接select SQL主体 ${ew.sqlSet} 拼接update SQL主体 ${ew.sqlSegment} ...
- mybatis-plus自定义sql报错 ew.customSqlSegment
mybatis-plus自定义sql报错: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibat ...
- MP之自定义分页,多表查询带分页带条件(Error evaluating expression ‘ew.customSqlSegment‘.或 Invalid bound statement)
一.问题 前端所需数据: 但成绩表中只有考生的id及试卷的id,此时就需要进行多表查询,通过考生的id获取姓名字段,通过试卷的id获取试卷名称.分别需要使用到三张表,成绩表,试卷表,考生表.同时需要做 ...
- mybatis-plus的${ew.sqlSegment},${ew.sqlSelect},${ew.sqlSet},${ew.customSqlSegment}使用与区别
说明: ew是mapper方法里的@Param(Constants.WRAPPER) Wrapper queryWrapper对象 1.${ew.customSqlSegment} 会直接在前面添加 ...
- mybatis-plus使用${ew.customSqlSegment}自定义查询,用数据库不存在的字段作为条件
场景 工作中需要用表中不存在的字段作为条件进行查询 之前该字段使用了mybatis-plus 的 @TableField(exist = false)注解进行标记 而sql又使用了mybatis-pl ...
最新文章
- R语言使用timeROC包计算存在竞争情况下的生存资料多个标记物在相同时间下的cox及协变量分析AUC值、并可视化多个标记物在相同时间下的ROC值、多指标的ROC曲线(Time-dependent R
- Block 的循环引用
- 第一行冻结_EXCEL函数tips(4) 数据冻结和查找
- mysql 语句检查_mysql查询语句
- python项目开发视频
- 内层元素设置position:relative后父元素overflow:hidden overflow:scroll失效 解决方法
- JavaEye中导入Csdn博客问题
- 数据结构与算法分析(一)基础
- python playsound播放时关闭_python - 使用playsound模块停止音频 - 堆栈内存溢出
- TMS320C64x DSP L1 L2 Cache架构(1)——C64x Cache Architecture
- 史上最全的程序员常用英语词汇 建议收藏!
- 智能人物画像综合分析系统——Day16
- 高薪职业,英年早秃?关于程序员,多的是你不知道的事……
- 录制音频文件大小的计算
- linux内核 初始化 wifi,Linux驱动(六)----Wifi基础
- Log4j2漏洞发展历程及解决方案
- mysql保存微信昵称特殊字符
- 力扣6. Z 字形变换
- 辗转相除法详解(C语言实现)
- Scaling Instruction-Finetuned Language Models翻译