使用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;
}