java吧 关注:1,254,771贴子:12,744,876
  • 10回复贴,共1

关于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 table,返回结果是beanA,结果debug发现,A.getCode为null,对象中code是有值的。
我的解答思路和尝试过的方法
已知mybatis中返回结果不区分大小写。
我开始认为是字段编译顺序问题,c在C前,所以先给code赋值。但是后来写了个测试类验证,测试类中是Code有值,跟现状正好相反,测试场景跟项目中唯一区别是测试的父类没有加@Component注解。
请解惑,这是什么原理?正确的结果应该是什么?


IP属地:山东1楼2023-01-09 10:32回复
    大手子来啊


    IP属地:山东2楼2023-01-09 10:39
    回复
      别沉


      IP属地:山东3楼2023-01-09 10:40
      回复
        没遇到这种问题。你可以搜搜看 mybatis 结果和对象映射的实现。扒拉源码看看。。。但是实际开发中。规范。就是字段。小写开头。。


        IP属地:浙江4楼2023-01-09 14:43
        收起回复
          你在xml文件映射好对象就没有这多事情了。


          IP属地:河南5楼2023-01-09 15:35
          收起回复
            我不会


            IP属地:陕西来自Android客户端6楼2023-01-09 16:06
            回复
              把继承关系先去掉,然后看子类的code是否仍为null,如果不再是Null,说明是继承关系引起的,这是一种调试的方法。


              IP属地:黑龙江7楼2023-01-09 16:39
              回复