java.sql.SQLException: Column 'xxx' not found.
上面的报错,是目标库表没有该字段,一般是访问错库表或者的确没有对应的字段,又或者是一些分布式数据库的从库schema缓存没来得及更新;
本次遇到上面的报错,一开始排查方向都是db层面,但最后确认原因是:mybaits sql返回的字段没有xxx,但是resultMap有xxx,这个原因导致的;
具体可以参考:org.apache.ibatis.executor.resultset.DefaultResultSetHandler#getPropertyMappingValue,对于resultMap中的每个key都会去resultSet中get下,找不到导致报错;
这个和DB报错相似的问题在mybaits这块可以解决,那边有sql字段和resultMap,做下判断,从报错上区分下,