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 实体类中没有这两个属性;