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