mybatis-plus le ge 记录_LazyTing的博客-CSDN博客
出异常源代码
this.baseMapper.selectList(new QueryWrapper<PersonnelRoleDO>().lambda().eq(PersonnelRoleDO::getTenantId, tenantId).eq(PersonnelRoleDO::getPersonnelCode, personnelCode).ge(PersonnelRoleDO::getStartTime, format).le(PersonnelRoleDO::getExpireTime, format));
问题原因:时间判断错误,le ge 的用法弄反了
le:小于或等于
ge:大于或等于
这个解释是没错,但是在mybatis-plus中需要注意用法:都是后者排在后面去比较。
所以上面的代码会变成,startTime 大于或等于 format 表示的时间 and expireTime 小于或等于format,这样是查不到数据的。
所以应该改成
.le(PersonnelRoleDO::getStartTime, format)
.ge(PersonnelRoleDO::getExpireTime, format));
sql:
AND start_time <= ? AND expire_time >= ?
贼离谱。
不积跬步无以至千里