1.背景

我们经常会遇到这样的开发场景,将一个类 Class02 作为另一个类 Class01 的属性,此时我们可以通过级联属性进行调用;

2.实例演示 

  • 在我们使用的 person 表中加入 homeaddress(家庭住址)、workaddress(工作地址)两列;我们查询出家庭住址为北京或者工作地址为承德的全部数据;
alter table person add homeaddress varchar(100) comment '家庭地址';
alter table person add workaddress varchar(100) comment '工作地址';

    此时 person 表如下所示:

 

  •  创建地址实体类Person 和 Address,Address 类里面包含两个属性 homeAddress 和  workAddress,Person类里面包含 Address 属性;

  •  创建 Person 类对应的 PersonMapper.xml 文件和动态代理的接口 PersonMapper;

此时  PersonMapper.xml 配置文件如下:

   <!--级联属性-->
    <select id="selectOrderByValue" resultType="Person" parameterType="Person">
        SELECT * FROM person where homeaddress = #{address.homeaddress} or workaddress=#{address.workaddress}
    </select>
  • 编写测试类后,运行结果为:

 

 

但是请注意:此时如果打印的话是无法显示出 homeaddress 和 workaddress 的信息的,因为 Person 实体类中没有这两个属性;