解决mybatis plus 一对多分页查询问题
换了很多姿势使用mybatis-plus分页还是有问题
问题
比如: 订单表跟订单信息表是一对多关系,分页每页查询出来的数据是以订单商品表为主的,万一 一个订单有十个商品的话,那就只能查询一条单了,这明显就存在问题,
我需要的是每页的条数是以订单表为主的,如果你遇到跟我同样的问题请往下看......
mapper层
/**
* 分页获取订单数据
*
* @param orderPara 订单传参数类
* @return
*/
public IPage selectOrdersList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper wrapper, @Param("orderPara") OrderParaVo orderPara);
/**
* 获取订单商品信息数据
*
* @param orderNo 订单号
* @return 订单商品数据
*/
public List selectOrderItemList(String orderNo);
xml
使用collection标签的select属性来映射
...
这里订单表字段忽略
property: 对应映射的订单商品类(private List
ofType: 订单商品类的包名路径
select: 查询订单商品的名称
column: 两表关联的条件字段(数据库的)
sql
注意: orderPara是传值Vo类在mapper层订单的别名,这样使用实体传值的话能传多个参数进来。
controller
这里直接调用mapper层了,需要规范的话,在service层写个接口调用mapper,然后controller再调用业务层,所有的业务层代码写在service实现层就好了......
@GetMapping("listOrdersList")
public AjaxResult test(@RequestBody OrderParaVo orderParaVo) {
QueryWrapper queryWrapper = new QueryWrapper<>();
Page page = new Page(orderParaVo.getPageNum(), orderParaVo.getPageSize());
IPage userPageList = ordersMapper.selectOrdersList( page, queryWrapper,orderParaVo);
return AjaxResult.success(userPageList);
}
如有其它办法能解决这个问题的话请下方留言哦,非常感谢!