mybatis-plus分页连表 多条件查询
controller层
具体代码
/** * 分页列表查询 * * @param quarantineTransfer * @param pageNo * @param pageSize * @param req * @return */ //@AutoLog(value = "quarantine_transfer-分页列表查询") @ApiOperation(value="quarantine_transfer-分页列表查询", notes="quarantine_transfer-分页列表查询") @GetMapping(value = "/list") public Result<IPage<QuarantineTransfer>> queryPageList(QuarantineTransfer quarantineTransfer, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<QuarantineTransfer> queryWrapper = QueryGenerator.initQueryWrapper(quarantineTransfer, req.getParameterMap()); if (!"**".equals(quarantineTransfer.getIdCard())&& StringUtils.isNotBlank(quarantineTransfer.getIdCard())) { queryWrapper.like("qm.id_card", quarantineTransfer.getIdCard().substring(1, quarantineTransfer.getIdCard().length() - 1)); } Page<QuarantineTransfer> page = new Page<QuarantineTransfer>(pageNo, pageSize); IPage<QuarantineTransfer> pageList = quarantineTransferService.page(page, queryWrapper); // List<QuarantineTransfer> records = pageList.getRecords(); // for (QuarantineTransfer record : records) { // //查询人员信息 // QuarantineMember member = quarantineMemberService.getById(record.getMemberId()); // //查询隔离点房间信息 // QuarantineSiteRoom room = quarantineSiteRoomService.getById(member.getRoomId()); // // record.setName(member.getName()); // record.setBirthday(member.getBirthday()); // record.setSex(member.getSex()); // record.setIdCard(member.getIdCard()); // record.setRoomName(room.getRoomName()); // } return Result.OK(pageList); }
mapper.xml层
具体代码
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.quarantine.mapper.QuarantineTransferMapper"> <select id="selectPage" resultType="org.jeecg.modules.quarantine.entity.QuarantineTransfer"> SELECT qt.*, qm.name, qm.birthday, qm.sex, qm.id_card, qsr.room_name FROM quarantine_transfer qt LEFT JOIN quarantine_member qm ON qt.member_id = qm.id LEFT JOIN quarantine_site_room qsr ON qm.room_id = qsr.id ${ew.customSqlSegment} </select> </mapper>
注意:同时当前实体类上需要加上 连表查询的字段,加上@TableField(exist = false)注解
/**姓名*/ // @Excel(name = "姓名", width = 15) @ApiModelProperty(value = "姓名") @TableField(exist = false) private java.lang.String name; /**性别*/ // @Excel(name = "性别", width = 15) @Dict(dicCode = "sex") @ApiModelProperty(value = "性别") @TableField(exist = false) private java.lang.String sex; /**出生日期*/ // @Excel(name = "出生日期", width = 20, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "出生日期") @TableField(exist = false) private java.util.Date birthday; /**身份证号码*/ // @Excel(name = "身份证号码", width = 15) @ApiModelProperty(value = "身份证号码") @TableField(exist = false) private java.lang.String idCard; /**隔离点房间名称*/ // @Excel(name = "隔离点房间名称", width = 15) @ApiModelProperty(value = "隔离点房间名称") @TableField(exist = false) private java.lang.String roomName;
@TableField(exist = false) 注解表示该字段 不是当前表中的字段,根据条件查询 导出excel时也会失效