MybatisPlus多表查询使用QueryWrapper

//ServiceImpl
public PageResult<CispBookingRecordInfoResult> page(CispBookingRecordInfoParam cispBookingRecordInfoParam) {
   QueryWrapper<CispBookingRecordInfoParam> queryWrapper = new QueryWrapper<>();
   if (ObjectUtil.isNotNull(cispBookingRecordInfoParam)) {
      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getSearchBeginTime())) {
         queryWrapper.ge(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getSearchBeginTime()), "record.flight_date", cispBookingRecordInfoParam.getSearchBeginTime());
      }
      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getSearchEndTime())) {
         queryWrapper.le(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getSearchEndTime()), "record.flight_date", cispBookingRecordInfoParam.getSearchEndTime());
      }
      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightNo())) {
         queryWrapper.like(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightNo()), "record.flight_no", cispBookingRecordInfoParam.getFlightNo());
      }

      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightDep())) {
         queryWrapper.eq(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightDep()), "record.flight_dep", cispBookingRecordInfoParam.getFlightDep());
      }
      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightDest())) {
         queryWrapper.eq(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightDest()), "record.flight_dest", cispBookingRecordInfoParam.getFlightDest());
      }
      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightTransit())) {
         queryWrapper.eq(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getFlightTransit()), "record.flight_transit", cispBookingRecordInfoParam.getFlightTransit());
      }
      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getApplyBy())) {
         queryWrapper.eq(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getApplyBy()), "approval.apply_by", cispBookingRecordInfoParam.getApplyBy());
      }
      if (ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getBookingStatus())) {
         queryWrapper.eq(ObjectUtil.isNotEmpty(cispBookingRecordInfoParam.getBookingStatus()), "approval.booking_status", cispBookingRecordInfoParam.getBookingStatus());
      }

   }
   return new PageResult<>(this.baseMapper.recordInfoPage(PageFactory.defaultPage(), queryWrapper));
}
//Mapper
Page<CispBookingRecordInfoResult> recordInfoPage(@Param("page") Page<Object> defaultPage,@Param(Constants.WRAPPER) QueryWrapper<CispBookingRecordInfoParam> queryWrapper);
<select id="recordInfoPage" resultType="com.yuetong.base.record.result.CispBookingRecordInfoResult">
		select 
		       record.*,
			   approval.*
		from cisp_booking_record_info record 
		left join cisp_booking_approval approval on record.id = approval.booking_id
		${ew.customSqlSegment}
	</select>

1.实现类里的QueryWrapper泛型使用2表关联的一个类,这样所有的查询字段都能获取到

2.mapper里的注解使用 Constants.WRAPPER,是组件内置的一个对象:

package com.baomidou.mybatisplus.core.toolkit;
public interface Constants extends StringPool, Serializable {

//......
/**
 * wrapper 类
 */
String WRAPPER = "ew";

//......
}

3.最后xml的写法就是使用

${ew.customSqlSegment}来带入实现类里查询的条件
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值