mybatis中@Column注解定义别名不生效问题

今天发现一个问题,在实体得一个列jdbcDatasourceId上指定数据库列名@Column(name="datasource_id")不生效。

深入mybatis源码org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createAutomaticMappings()方法中发现,刚获取列映射时,是有成功取出来的:


结果在下面有个会根据列名按下划线转驼峰找对应属性名,找不到就就不会添加到映射集合里,这里转完后为datasourceId,自然与jdbcDatasourceId对不上的。


然后会交给AutoMappingUnknownColumnBehavior处理,如果配置了autoMappingUnknownColumnBehavior为WARNING或者FALING就会输出警告日志:

后来发现用mybatis如果属性名和列名差距太大没啥好办法,要不只能在对应得@Select注解下加Result

@Result(property = "jdbcDatasourceId", column = "datasource_Id")

要不就只能把属性名改成数据库列名对应得驼峰式datasourceId了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,762评论 0 4
  • MyBatis 理论篇 [TOC] 什么是MyBatis  MyBatis是支持普通SQL查询,存储过程和高级映射...
    有_味阅读 2,986评论 0 26
  • 最近做项目用到springboot整合mybatis,security。将其中遇到的问题做一个总结 注:本项目全程...
    huoyl0410阅读 768评论 1 2
  • 连接数据库 创建数据库 创建用户并授权模式: 数据库的权限列表 [ 查] select [插] insert [更...
    StrongZhao阅读 566评论 0 1
  • 不知不觉,PORT营就结束了,看一起训练的同学们的作业,实在惭愧。 一、自己PORT营期间的作业 DAY 01DA...
    泓澄阅读 336评论 0 0