admin管理员组

文章数量:1599529

MybatisPlus的Wrapper带条件的eq等方法的坑

MybatisPlus的Wrapper带条件的eq等方法,在不满足条件的时候也会执行后面的方法
这个方法的意思是:会执行,但是sql条件不会有

下面写法在某些值为null时会报空指针异常

LambdaQueryWrapper<PdfSplitJobPo> queryWrapper = new LambdaQueryWrapper<>();
// 如果 jobStatus.getStatusEnum() 为 null,随便 condition 不满足,但是还会报空指针异常
queryWrapper.eq(Objects.nonNull(jobStatus.getStatusEnum()), PdfSplitJobPo::getStatus, jobStatus.getStatusEnum().getStatus());
queryWrapper.eq(Objects.nonNull(jobStatus.getPdfSplitJobId()), PdfSplitJobPo::getJobId, jobStatus.getPdfSplitJobId().getJobId());
LambdaQueryWrapper<PdfSplitJobPo> queryWrapper = new LambdaQueryWrapper<>();
// 这样写不会报空指针异常
if (Objects.nonNull(jobStatus.getStatusEnum())) {
    queryWrapper.eq(PdfSplitJobPo::getStatus, jobStatus.getStatusEnum().getStatus());
}

PdfSplitJobId pdfSplitJobId = jobStatus.getPdfSplitJobId();
    if (Objects.nonNull(pdfSplitJobId)) {
	queryWrapper.eq(PdfSplitJobPo::getJobId, jobStatus.getPdfSplitJobId().getJobId());
}

本文标签: 方法也会不满足条件Wrapper