嘿,我使用了mp的自连接+分页查询之后,再使用条件查询居然失效了。
原因:我想通过自连接查询将一个表的两条数据放在一起,为此我重写了mp的分页查询
IPage<Indi> selectIndiShow(IPage<Indi> page, @Param(Constants.WRAPPER) QueryWrapper<Indi> wrapper);
我又在xml中这样写mapper
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.example.mapper.IndiMapper"> <resultMap id="mainIndi" type="com.example.entity.Indi"> <result property="lastMain Indi" column="a.indi_true/a.indi"/> <result property="lastSubIndi" column="b.indi_true/b.indi"/> <result property="name" column="name"/> <result property="time" column="time"/> <result property="id" column="id"/> </resultMap> <select id="selectIndiShow" resultMap="mainIndi"> SELECT a.id,a.name,a.time,a.indi_true/a.indi,b.indi_true/b.indi,a.ichange FROM indiinfor a ,indiinfor b WHERE a.mainOrsub=1 AND b.mainOrsub=0 AND a.name=b.name </select> </mapper>
一开始一切都好,后来我想添加一个模糊查询,天呐,wrapper居然不生效。我怎么调试都可以看到他的输入是多么的完美无瑕,逻辑紧密。可是!在控制台报的sql居然没有和queryWrapper任何相关的信息。可是明明
我使用sout都可以把他打印出来
public IPage<Indi> selectSelf(Params params) { IPage<Indi> page = new Page<>(params.getPageNum(), params.getPageSize()); QueryWrapper<Indi> queryWrapper = new QueryWrapper<>(); if(!StringUtils.isBlank(params.getName())){ queryWrapper.like("a.name",params.getName()); } return indiMapper.selectIndiShow(page, queryWrapper); }
最后我将上面所有信息抛给chat询问,他告诉我,我重写的mapper里面没有使用querywrapper条件。在重写的xml中,我应该使用mp的ew(entity wrapper)来引用我的qw
ew
是MyBatis Plus自动生成的一个参数,用于传递QueryWrapper
中的条件信息
<select id="selectIndiShow" resultMap="mainIndi"> SELECT a.id, a.name, a.time, a.indi_true/a.indi, b.indi_true/b.indi, a.ichange FROM indiinfor a, indiinfor b WHERE a.mainOrsub=1 AND b.mainOrsub=0 AND a.name=b.name <if test="ew != null"> <if test="ew.sqlSegment != null and ew.sqlSegment != ''"> AND ${ew.sqlSegment} </if> </if> </select>
分类:
mybatis(plus)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix