最近接手了一个外包项目,在迭代需求时使用mybatisplus的条件构造器QueryWrapper构造查询条件,发现控制台上打印的sql拼接的条件总是多一个字段条件(is_delete=0)。这就让我很纳闷了,明明没有设置这个字段的值,怎么加上去的?
经过查找,真相终于大白。原来是在实体里面的is_delete字段上有个逻辑删除的注解@TableLogic,之前我没接触过这个注解,是我孤陋寡闻了。。。
MP提供的这个注解确实有很多好处,可以有效防止在误操作下物理删除。但对于我这种见识浅薄的渣渣来说就容易踩坑,浪费时间。有了这个注解后,在查询时也会自动拼接逻辑删除的判断条件,但也只是在调baseMapper里的方法时拼接,在手动输入的sql里是不会生效的。