java中mybatis返回bean有继承时属性赋值的问题

问题遇到的现象和发生背景

项目中有个beanA,继承了beanB,A中有个字段是Code,B中有个字段是code,都有各自对应的get、set方法,其中A中Code是private修饰,B中code是public修饰,A无注解,B有@Component注解。

遇到的现象和发生背景,请写出第一个错误信息

mybatis中写的sql是select code from xxx,返回结果是beanA,结果debug发现,A.getCode为null,对象中code是有值的。

我的解答思路和尝试过的方法

已知mybatis中返回结果不区分大小写。
我开始认为是字段编译顺序问题,c在C前,所以先给code赋值。但是后来写了个测试类验证,测试类中是Code有值,跟现状正好相反,测试场景跟项目中唯一区别是测试的父类没有加@Component注解。
请解惑,这是什么原理?

问题描述得很清晰,但是应该是还有什么你没注意到的细节没有说到,按你描述理论上应该不会这样的;
首先跟@Component注解没关系;
mybatis映射调用的是对象.setCode();但实际上你A是setCode(),B也是setCode(),属性不同名,set方法同名了,这样应该是A有值,B为null