今天發(fā)現(xiàn)一個(gè)問題,在實(shí)體得一個(gè)列jdbcDatasourceId上指定數(shù)據(jù)庫(kù)列名@Column(name="datasource_id")不生效。
深入mybatis源碼org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createAutomaticMappings()方法中發(fā)現(xiàn),剛獲取列映射時(shí),是有成功取出來的:

結(jié)果在下面有個(gè)會(huì)根據(jù)列名按下劃線轉(zhuǎn)駝峰找對(duì)應(yīng)屬性名,找不到就就不會(huì)添加到映射集合里,這里轉(zhuǎn)完后為datasourceId,自然與jdbcDatasourceId對(duì)不上的。

然后會(huì)交給AutoMappingUnknownColumnBehavior處理,如果配置了autoMappingUnknownColumnBehavior為WARNING或者FALING就會(huì)輸出警告日志:

后來發(fā)現(xiàn)用mybatis如果屬性名和列名差距太大沒啥好辦法,要不只能在對(duì)應(yīng)得@Select注解下加Result
@Result(property = "jdbcDatasourceId", column = "datasource_Id")
要不就只能把屬性名改成數(shù)據(jù)庫(kù)列名對(duì)應(yīng)得駝峰式datasourceId了。