一旦在逻辑字段上加了@TableLogic逻辑删除的配置,并且使用mybatis-plus自带的方法时(如果自己用xml写SQL不会出现下面的情况)

查询、修改时会自动排除逻辑删除的数据

当使用mybatis-plus自带的查询方法时,就不用每次查询的时候跟 .eq(“deleted”,false)

mybatis-plus 会自动加上过滤条件 is_deleted = 0,我亲自测了一下

User的逻辑删除字段:

接口详情:

数据库:

SQL打印日志:

LambdaQueryWrapper并没有加 is_deleted=0,但是查看日志后发现mybatis-plus自动为我们加上了 。查出来的也为空。

即便在LambdaQueryWrapper后面追加条件is_deleted=1 也查询不到逻辑删除的数据,因为mybatis-plus还是会加上is_deleted=0的条件

SQL打印日志:

如果要查询逻辑删除的数据,必须自己写SQL,不能用mybatis-plus自带的方法!

删除时会自动修改逻辑字段值而非删除记录行

数据库:

接口详情:

SQL打印日志: 

另外如果用了逻辑删除,那么建唯一索引的时候就要小心了  

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐