作用:
数据关联查询的解决方案,替代sql中的join方式(或者内存组装数据的方式),通过注解关联多表之间的关系,查询某实体的时候,自动带出其关联性的数据。
讲解:
示例展开前,先明确几个概念:
- @BindEntity@BindEntityByMid是关联Entity的数据。
- @BindField@BindFieldByMid系列是关联Entity下的某个字段。
- @Bind*系列注解用在单类型的属性上即表达一对一,当注解用在集合类型的属性上时便表达一对多的意思。至于多对多的概念,就是外层数据查询的是集合形式,然后集合内部的对象是一对多的标注,多个一对多交至在一起既是多对多了。
注意:
为了解决数据库兼容支持的问题,关联查询底层原理是基于MybatisPlus的BaseMapper
MPE相当于把实体对应的Mapper视为数据访问窗口了,所以但凡需要从数据库查询数据的行为均需要通过对应的Mapper完成。
用法:
// 第一步: 各种办法获取到User集合
List<User> userList = selectUserList();
// 第二步: 核心 Binder.bind 会基于User上的注解,自动级联出相关的数据赋值到userList的user中
Binder.bind(userList);