原文:
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'