Mybatis-Plus数据库字段名与实体属性名一致但是映射出错




关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言问题描述: 使用Mybatis-Plus进行数据库操作时,发现数据库字段名与实体属性名一致,但是映射出错。 解决方案: 1.检查实体类属性名与数据库字段名是否一致,如果不一致需要手动添加@TableField注解,指定对应数据库字段名。 案例: 实体类:
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("user") // 指定对应数据库表名
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "user_id", type = IdType.AUTO) // 指定对应数据库主键名和自增类型
private Long userId;
@TableField(value = "username") // 指定对应数据库字段名
private String username;
private String password;
}
2.检查Mybatis-Plus配置文件是否正确配置了驼峰命名转换。 案例: 在mybatis-plus.properties文件中添加以下配置:
# 驼峰命名转换
mybatis-plus.configuration.map-underscore-to-camel-case=true
3.如果以上两种情况均不存在问题,可以手动编写XML文件指定对应的SQL语句。 案例: 在UserMapper.xml文件中添加以下代码:
<!-- 查询所有用户 -->
<select id="findAllUsers" resultType="com.example.demo.entity.User">
select user_id as userId, username, password
from user
</select>
4.如果实在无法解决以上问题,则可能是Mybatis-Plus版本过低,可以尝试升级Mybatis-Plus版本或使用其他ORM框架。 参考资料: 1.Mybatis-Plus官方文档:https://baomidou.com/guide/ 2.Mybatis-Plus GitHub仓库:https://github.com/baomidou/mybatis-plus