mybatis-plus逻辑删除的坑

 一旦在逻辑字段上加了@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打印日志: 

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

猜你喜欢

转载自blog.csdn.net/qq_62767608/article/details/132240295