在实体类属性中,我的User属性名与数据库中的表名相同。其中userName属性在执行
userDao.selectByMap(null);时,在控制台中显示的查询的属性为user_name。
解决方案:
加入TableField注解。
@TableField("userName") private String userName;
@TableField
@TableField注解的作用是当实体类中的属性和表结构中的字段名称不一致的情况下来设置对应关系的,当然,在MyBatis-Plus中针对实体中是userName而表结构中是user_name这种情况会自动帮助我们完成驼峰命名法的转换。
(来源:MyBatisPlus:常用注解-腾讯云开发者社区-腾讯云 (tencent.com))
@AllArgsConstructor
@ToString
@Data
public class User {
@TableId(value = "uid",type = IdType.ASSIGN_ID)
private Long uid; // 表明uid就是主键字段对应的属性
@TableField("name") // 表结构中的name属性和name属性对应
private String name;
private Integer age;
private String email;
}