使用 MyBatis-Plus,实体类用了数据库的保留字,即使使用了 @TableField 注解,也会查询失败
约 141 个字 14 行代码 预计阅读时间 1 分钟
问题
MySQL 数据库某表中有字段名为 is_group
,根据阿里巴巴的 Java 规范,在实体类中应命名为 group
。
Spring Boot 项目中,使用 MyBatis-Plus,实体类如下:
| @Data
public class Entity {
@TableField(value = "is_group")
private Integer group;
}
|
Mapper.xml 如下:
| <resultMap id="BaseResultMap" type="...">
<!-- ... -->
<result property="group" column="is_group" jdbcType="TINYINT"/>
</resultMap>
|
查询执行报错,提示 SQL 错误,发现拼接的 SQL 如下:
| SELECT ...,is_group AS group FROM ... WHERE (...)
|
解决方案
如果用 application.yml 配置,可以配置如下:
| mybatis-plus:
global-config:
db-config:
property-format: "`%s`"
|
参见