mybatis-plus结合VO的NOSQL的多表查询
介绍
(我是小白)之所以加结合VO,是因为现在工作碰到了,在VO里面写的,具体原理不太懂,百度了半天都没找到相应的说明介绍,现在学会了一点,想小白帮小白。
多表查询
忽略了controller写的调用的方法,直接说多表查询的关键字。
@BindEntity绑定实体类
连接两张表A和B的查询,其实就类似MySQL的join查询。先绑定实体类entity = B.class,在写条件语句,就是MySQL的on什么=什么,condition = this.id = B.id。就可以查询出id相等的两个表的数据了。最后声明下private A a ,在controller调用。代码如下:
@BindEntity(entity = A.class,condition = "this.ID = B.ID")
private A a
@BindField绑定实体类的某一字段
关联到B表的name。先绑定实体类entity = B.class。定位到要绑定的字段field = name。再写条件语句,condition = this.id = B.id。查询符合条件的B表的name。最后声明下private String name ,在controller调用。代码如下:
@BindField(entity = A.class,field = name,condition = "this.ID = B.ID")
private String name
@BindEntityList绑定实体类查询一对多
这里用到三个表A、B、C。表C是一个关联表。举例:C记录B的ID对应了多少个A的ID。从而实现通过B的ID找到所有与其关联的A的数据。
这里是C的VO,这里绑定的表是要展示的多数据,先绑定实体类entity = A.class。再写条件语句,condition = “this.B_ID = B.ID AND this.A_ID = A.ID”。最后声明列表下private List AVOList,在controller调用。代码如下:
@BindEntityList(entity = A.class,condition = "this.B_ID = B.ID AND this.A_ID = A.ID")
private List<AVO> AVOList