关于mybatis中po类继承另一个po类时查不出另一个po类里的属性

Orders类

 public class Orders{

    private int id;
    private int userId;
    private int number;
    private Date createtime;
    private String note;

    //set...  get...

自定义的OrdersCustom类,继承Orders

public class OrdersCustom extends Orders{

    private String username;
    private String address;

    //set...   get...

接口

 public interface IOrdersDao {
    //查询订单关联查询用户信息
    public List<OrdersCustom> findOrdersUser() throws Exception;
}

mapper.xml

 <select id="findOrdersUser" resultType="com.energyfuture.ssm.po.OrdersCustom" >
        select 
            orders.*,user.*
        from user,orders 
            where user.id = orders.user_id 
    </select>

测试

 public class OrdersMapperTest {
    private SqlSessionFactory sqlSessionFactory = null;

    @Before
    public void setUp() throws Exception {

        String resource = "SqlMapConfig.xml";

        InputStream inputStream=Resources.getResourceAsStream(resource);
        //创建回话工厂,传入mybatis的配置文件信息
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 

    }

    @Test
    public void findOrdersUserTest(){

        SqlSession session = sqlSessionFactory.openSession();
        try {

            IOrdersDao mapper = session.getMapper(IOrdersDao.class);
            List<OrdersCustom> list = mapper.findOrdersUser();
            System.out.println(list);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(session != null){
                session.close();
            }
        }
    }
}

按理说OrdersCustom继承了Orders,查询出来的结果不是应该包含Orders里面的属性吗,但是为什么查询的list是:
[address=台湾市, username=周一]
并没有查询到Orders里面的属性?

private修饰的属性不会被子类继承

因为父类是private?

子类继承父类,子类拥有了父类的所有属性和方法。
  程序验证,父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的getter和setter方法访问到的,但是私有方法不行。

private修饰的属性不会被子类继承啊~~~

是可以的,你断点看一下查出来的数据是不是空?或者对应关系不对,自己写个resultmap试一下?

  • -。你要不要试试把父类也放到resultType里。。。。。

其实可能是你的属性和数据库中的字段对应不上造成,
如果不是的话,那就是setter和getter的问题了

楼主解决了 这个问题吗?

你父类的字段都没在resultMap里面做映射怎么会有结果

你要是想要查询Orders里面的属性,直接在OrdersCustom定义下父类的属性就行了,