解决SpringBoot中的MyBatis驼峰命名映射报错column不匹配问题

使用MyBatis-Plus映射出现与数据库column匹配不上的报错

Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘register_time’ in ‘field list’

源代码:

@Data
@TableName("db_account")
public class Account {
    @TableId(type = IdType.AUTO)
    Integer id;
    String email;
    String username;
    String password;
    String role;
    Date registerTime;  // <----ERROR位置!!!!
}

报错说没有找到register_time。代码没有报错所说的register_time,而是registerTime。

原因:

※成员变量的驼峰命名,修改数据库列名,或者添加注解解决

Spring Data JPA 和 MyBatis-Plus 等框架默认使用驼峰命名规则来映射数据库列,因此在数据库表中,registerTime 会被映射为 register_time
如果你的数据库表确实使用的是 registerTime,而不是 register_time,你可以通过在 registerTime 字段上添加 @TableField 注解来指定映射的列名。例如:

@Data
@TableName("db_account")
public class Account {
    @TableId(type = IdType.AUTO)
    Integer id;
    String email;
    String username;
    String password;
    String role;
    
    @TableField("registerTime") //<-----添加注解
    Date registerTime;
}

你可能感兴趣的:(Spring,spring,boot,mybatis,后端)