Mybatis-Plus中@TableField失效的解决方案
更新时间:2026年01月12日 15:13:20 作者:Cau1i
Mybatis-Plus默认开启驼峰命名,使用@TableField注解时日志中仍显示原名,原因:默认生成别名,QueryWrapper指定select属性后丢失别名,解决方法:去掉@TableField注解,修改wrapper方法中的字段参数
问题描述
mybatisplus默认开启驼峰命名,所以一般不需要使用@TableField注解,但是我在项目中就算加上了该注解,在日志中的select语句中也显示是departmentId。

原因分析
默认情况下Mybatis-Plus会根据@TableFiled生成别名,
而自己指定了QueryWrapper的select属性后就仅仅是属性值而没有了别名。
我的代码:


解决方法
去掉@TableField注解:

将wrapper方法中的字段参数改成原来字段的名称:

//我的代码参考
//条件查询带分页
@PostMapping("findPageUser/{current}/{limit}")
public Result findPageUser(@PathVariable Integer current, @PathVariable Integer limit, @RequestBody(required = false) UserQueryVo UserQueryVo) {
//创建page对象,传递当前页,每页记录数
Page<User> page = new Page<>(current, limit);
//构建条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
String departmentId = UserQueryVo.getDepartmentId();//角色科室id
if (!StringUtils.isEmpty(departmentId)) {
wrapper.eq("department_id", departmentId);
}
//调用方法实现分页查询
Page<User> UserPage = userService.page(page, wrapper);
//返回结果
return Result.ok(UserPage);
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java中的HttpServletRequest接口详细解读
这篇文章主要介绍了Java中的HttpServletRequest接口详细解读,是一个接口,全限定名称为Jakarta.Serclet.http.HttpServletRequest2023-11-11
HttpServletRequest接口是Servlet规范的一员,需要的朋友可以参考下
详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)
这篇文章主要介绍了详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用),非常具有实用价值,需要的朋友可以参考下2017-11-11
SpringBoot + minio实现分片上传、秒传、续传功能
MinIO是一个基于Go实现的高性能、兼容S3协议的对象存储,使用MinIO构建用于机器学习,分析和应用程序数据工作负载的高性能基础架构,这篇文章主要介绍了SpringBoot + minio实现分片上传、秒传、续传,需要的朋友可以参考下2023-06-06


最新评论