一.先放成功的方法
jar包:mybatis-plus-extenaion-3.4.0
1.DAO层,使用注解方式。用inner join [表名] on [条件]关联多表,用${ew.customSqlSegment}表示wrapper的where条件
public interface WReqMstMapper extends BaseMapper
@Select("SELECT mst.*,wh1.whname as REQWHNAME,wh2.whname as BYREQWHNAME ,comp.companyname as DEPTNAME FROM w_req_mst mst inner join gen_company comp on mst.deptid=comp.companyid left join gen_wh_def wh1 on mst.reqwhid=wh1.whid inner join gen_wh_def wh2 on mst.byreqwhid=wh2.whid ${ew.customSqlSegment}")
IPage
}
2.Service层
public interface IWReqMstService extends IService
IPage
}
这里可以不用lambda(),可以直接new QueryWrapper<>()来添加条件。
@Service
public class WReqMstServiceImpl extends BaseService
private IWReqDtlService wReqDtlService;
@Resource
private WReqMstMapper getWReqMstMapper;
@Override
public IPage
Wrapper
.like(!StringUtil.isEmpty(pageListDto.getHISREQNO()), WReqMst::getHisreqno, pageListDto.getHISREQNO())
.ge(!StringUtil.isEmpty(pageListDto.getINPUTDATE_Start()), WReqMst::getInputdate, DateTimeUtil.minForTime(pageListDto.getINPUTDATE_Start(), "datetime"))
.le(!StringUtil.isEmpty(pageListDto.getINPUTDATE_End()), WReqMst::getInputdate, DateTimeUtil.maxForTime(pageListDto.getINPUTDATE_End(), "datetime"))
.eq(!StringUtil.isEmpty(pageListDto.getREQTYPE()), WReqMst::getReqtype, pageListDto.getREQTYPE());
return getWReqMstMapper.mlist(ConventPage.getPage(pageListDto), wrapper);//this.page(ConventPage.getPage(pageListDto), wrapper);
}
}
3.controller层
@GetMappin
public Response
IPage
List
return Response.ok(ConventPage.getPageOutput(page.getTotal(), records));
}
二.未解决
如果不用注解方式,查列表数据和有条件的查数据我没法同时存在,我不知道如何同时实现。
先用association进行了一对一表连接,其他代码和上面一样。但是xml文件按方法只能无条件查询,wrapper加上的条件没有进入xml文件。。。
如果在下面的
是不是要加上
select *
from w_req_mst
相关链接
发表评论