出异常源代码
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 >= ?
贼离谱。
不积跬步无以至千里