通用Mapper实体类映射数据库字段问题
最近再做项目时遇到了一个小坑, 删除某个表格行时报错了, Unknown column ‘kind_id’ in ‘where clause’. 显示我的sql语句DELETE FROM tb_app_leave WHERE kind_id = 4, 当时实体类属性名时kindId, 数据库字段名时kindId, 本来想按外键删除的, 结果就报了上面这么个错.
查了不少资料, 最后发现时通用mapper的默认映射关系的原因:
通用 Mapper 中, 默认情况下是将实体类字段按照驼峰转下划线形式的表名列名进行转换. 如果想要修改默认的转换方式, 可以在后续的配置中 ,修改 style 全局配置.
查看资料后我用了 @NameStyle 注解, 该注解的值支持下面的选项
Style.normal, //原值
Style.camelhump, //驼峰转下划线
Style.uppercase, //转换为大写
Style.lowercase, //转换为小写
Style.camelhumpAndUppercase, //驼峰转下划线大写形式
Style.camelhumpAndLowercase, //驼峰转下划线小写形式
然后通用mapper自动生成的sql就是自己想要的结果了:DELETE FROM tb_app_leave WHERE kindId=4
当然通用mapper还有更多的注解, 可以参考下面的博客地址:
https://blog.csdn.net/lyf_ldh/article/details/81041253