现需要根据(is_sent = 0 OR is_sent IS NULL)条件进行查询,原始sql如下:
SELECT * FROM exam_notice_entity
WHERE published_datetime = '2023-04-05'
AND ((is_sent = 0 OR is_sent IS NULL))
在代码中格式如下:
LocalDate today = LocalDate.now();
Date todayAsDate = Date.from(today.atStartOfDay(ZoneId.systemDefault()).toInstant());
List<ExamNoticeEntity> notices = examNoticeService.list(Wrappers.<ExamNoticeEntity>lambdaQuery()
.eq(ExamNoticeEntity::getPublishedDatetime, todayAsDate)
.and(i -> i
.eq(ExamNoticeEntity::getIsSent, YesNoEnum.NO.getValue())
.or()
.isNull(ExamNoticeEntity::getIsSent)
));
// 错误示例
List<ExamNoticeEntity> notices = examNoticeService.list(Wrappers.<ExamNoticeEntity>lambdaQuery()
.eq(ExamNoticeEntity::getPublishedDatetime, todayAsDate)
.eq(ExamNoticeEntity::getIsSent, YesNoEnum.NO.getValue())
.or()
.isNull(ExamNoticeEntity::getIsSent));