想一想 發表於 2026-1-12 15:13:20

Mybatis-Plus中@TableField失效的解决方案

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>问题描述</li><li>原因分析</li><li>解决方法</li><li>总结</li></ul></div><p class="maodian"></p><h2>问题描述</h2>
<p>mybatisplus默认开启驼峰命名,所以一般不需要使用@TableField注解,但是我在项目中就算加上了该注解,在日志中的select语句中也显示是departmentId。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011210503741.png" /></p>
<p class="maodian"></p><h2>原因分析</h2>
<p>默认情况下Mybatis-Plus会根据@TableFiled生成别名,</p>
<p>而自己指定了QueryWrapper的select属性后就仅仅是属性值而没有了别名。</p>
<p>我的代码:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011210503765.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011210503774.png" /></p>
<p class="maodian"></p><h2>解决方法</h2>
<p>去掉@TableField注解:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011210503721.png" /></p>
<p>将wrapper方法中的字段参数改成原来字段的名称:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011210503789.png" /></p>
<div class="jb51code"><pre class="brush:java;">    //我的代码参考
    //条件查询带分页
    @PostMapping("findPageUser/{current}/{limit}")
    public Result findPageUser(@PathVariable Integer current, @PathVariable Integer limit, @RequestBody(required = false) UserQueryVo UserQueryVo) {
      //创建page对象,传递当前页,每页记录数
      Page&lt;User&gt; page = new Page&lt;&gt;(current, limit);
      //构建条件
      QueryWrapper&lt;User&gt; wrapper = new QueryWrapper&lt;&gt;();
      String departmentId = UserQueryVo.getDepartmentId();//角色科室id

      if (!StringUtils.isEmpty(departmentId)) {
            wrapper.eq("department_id", departmentId);
      }
      //调用方法实现分页查询
      Page&lt;User&gt; UserPage = userService.page(page, wrapper);
      
      //返回结果
      return Result.ok(UserPage);
    }
</pre></div>
<p class="maodian"></p><h2>总结</h2>
<p>以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>MyBatis-Plus中@TableField和@TableId说明</li><li>MyBatis-Plus之@TableField的用法解读</li><li>mybatis-plus常用注解@TableId和@TableField的用法</li><li>Mybatis-Plus&nbsp;@TableField自动填充时间为null的问题解决</li><li>MyBatis-Plus标签@TableField之fill自动填充方式</li><li>Mybatis-Plus使用@TableField实现自动填充日期的代码示例</li><li>Mybatis-plus常见的坑@TableField不生效问题</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: Mybatis-Plus中@TableField失效的解决方案