mybatis LambdaQueryWrapper之复杂与或非sql逻辑编写

LambdaQueryWrapper可自动生成sql表达式,对于复杂情况,可参考以下写法:

queryWrapper.and(true,wrapper->{
	wrapper.eq(true, EmployeeCheckPO::getCid, employeeCheckPO.getCid());
	wrapper.eq(StrUtil.isNotBlank(employeeCheckPO.getCheckMonth()), EmployeeCheckPO::getCheckMonth, employeeCheckPO.getCheckMonth());
	wrapper.like(StringUtils.isNotBlank(employeeCheckPO.getUsername()), EmployeeCheckPO::getUsername, employeeCheckPO.getUsername());
});
queryWrapper.and(true,wrapperNew->{
	wrapperNew.and(true,queryWrapper1->{
		queryWrapper1.eq(EmployeeCheckPO::getDelFlag, DelFlagEnum.N.getValue());
		queryWrapper1.eq(Objects.nonNull(employeeCheckPO.getCid()), EmployeeCheckPO::getCid, employeeCheckPO.getCid());
		queryWrapper1.eq(EmployeeCheckPO::getStatus,0);
		queryWrapper1.eq(EmployeeCheckPO::getUserId,employeeCheckPO.getUserId());
	})
			.or(true,queryWrapper2->{
				queryWrapper2.eq(EmployeeCheckPO::getDelFlag, DelFlagEnum.N.getValue());
				queryWrapper2.eq(Objects.nonNull(employeeCheckPO.getCid()), EmployeeCheckPO::getCid, employeeCheckPO.getCid());
				queryWrapper2.eq(EmployeeCheckPO::getStatus,1);
				queryWrapper2.eq(EmployeeCheckPO::getProcessSupervisorId,employeeCheckPO.getUserId());
			}).or(true,queryWrapper3->{
		queryWrapper3.eq(EmployeeCheckPO::getDelFlag, DelFlagEnum.N.getValue());
		queryWrapper3.eq(Objects.nonNull(employeeCheckPO.getCid()), EmployeeCheckPO::getCid, employeeCheckPO.getCid());
		queryWrapper3.eq(EmployeeCheckPO::getStatus,1);
		queryWrapper3.isNull(EmployeeCheckPO::getProcessSupervisorId);
		queryWrapper3.eq(EmployeeCheckPO::getProcessLeaderId,employeeCheckPO.getUserId());
	});
});
queryWrapper.orderByDesc(EmployeeCheckPO::getCheckMonth);
上述sql逻辑解读为:wrapper集合 && (wrapperNew);
其中wrapperNew包括queryWrapper1 || queryWrapper2 || queryWrapper3

相关推荐

  1. mybatis LambdaQueryWrapper复杂sql逻辑编写

    2024-06-16 18:46:01       7 阅读
  2. 逻辑门的工艺结构原理及选型参数总结

    2024-06-16 18:46:01       23 阅读
  3. day07、SQL语言复杂查询视图

    2024-06-16 18:46:01       34 阅读
  4. 1.4编程基础逻辑表达式条件分支

    2024-06-16 18:46:01       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 18:46:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 18:46:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 18:46:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 18:46:01       18 阅读

热门阅读

  1. 怀庄之醉和豫腾贸易的关系

    2024-06-16 18:46:01       9 阅读
  2. 杂笔: 物体的三维识别与6D位姿估计

    2024-06-16 18:46:01       6 阅读
  3. 9、Spring之Bean生命周期~依赖注入(总)

    2024-06-16 18:46:01       6 阅读
  4. Linux 使用chown修改文件所属用户 用户组

    2024-06-16 18:46:01       10 阅读
  5. 网络熔断机制(Circuit Breaker)

    2024-06-16 18:46:01       8 阅读
  6. 使用python获取内存信息

    2024-06-16 18:46:01       11 阅读
  7. 分布式事务之TCC

    2024-06-16 18:46:01       6 阅读
  8. 抉择与未来:计算机专业的选择与发展展望

    2024-06-16 18:46:01       7 阅读