MyBatis-Plus And和Or的使用


原文:
https://baomidou.com/guide/wrapper.html#and
https://baomidou.com/guide/wrapper.html#or

	private void checkRepeat(Post entity) {
		LambdaQueryChainWrapper<Post> query = new LambdaQueryChainWrapper<>(baseMapper)
			.nested(c -> c.eq(Post::getPostName, entity.getPostName())
				.or()
				.eq(Post::getPostCode, entity.getPostCode()));

		query = (Objects.isNull(entity.getId()) || (entity.getId() <= 0))
			? query
			: query.notIn(Post::getId, entity.getId());

		if (query.count() > 0) {
			throw new ServiceException("名称重复!");
		}
		// 组合后的条件: ((post_name = ? OR post_code = ?) AND id NOT IN (?)) AND tenant_id = '000000'
	}

组合后的条件:

SELECT COUNT(1) FROM blade_post WHERE is_deleted = 0 AND ((post_name = ? OR post_code = ?) AND id NOT IN (?)) AND tenant_id = '000000'


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM