问题:
今天遇到一个问题,两张表a,表b中同一个字段customer_id,存的值也是相同的,但是此字段在不同表中类型不一致,导致索引失效。
这个字段其实是客户表的主键ID(bigint)。在t_a中类型为bigint,在t_b中类型为varchar。所以在对应的代码中表现形式分别为
<result column="customer_id" jdbcType="BIGINT" property="customerId"/>
<result column="customer_id" jdbcType="VARCHAR" property="customerId" />
可是如果把数据库字段类型和java代码中对象字段类型一起改的话,代码中牵扯到的地方很多,由于微服务体系,其他地方引用此字段的服务可能报错。
想法:
此字段其实真正值是bigint。那么我把t_b表中字段类型直接改为bigint。但是不改对应代码,mybatis是否会自动转换(bigint转为string)。
结果:
经过验证,确定此行为可行。