1.逻辑删除。 我知道目前版本开启逻辑删除之后,model中包含逻辑删除注解,就会视为逻辑删除、查询自动排除删除的。

假定,现在有个业务,需要查询到订单的历史记录。但是这个订单的原商品已经被删除(订单表冗余字段可解决这问题,假设没有冗余)此时正常的selectById就不能查询到原来的记录了。如果代码不严谨就会报空指针了。

建议:能不能将查询语句是否启用逻辑删除,使用一个boolean类型的条件来开启或关闭,可以默认开启。特殊情况,使用者可以改为false 将被删除的同时也查询出来。 同理,delete deleteById 等,也可以做成这样

Comment From: qmdx

请查看文档说明很清楚

附件说明

逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。
如果你需要再查出来就不应使用逻辑删除,而是以一个状态去表示。
如: 员工离职,账号被锁定等都应该是一个状态字段,此种场景不应使用逻辑删除。

若确需查找删除数据,如老板需要查看历史所有数据的统计汇总信息,请单独手写sql。

https://mp.baomidou.com/guide/logic-delete.html

Comment From: mintonzhang

@qmdx 我看过那个文档,个人认为单独手写sql太麻烦了。明明在生成SQL语句时,不拼接逻辑删除字段到where语句的时候,就可以解决这个问题。

Comment From: qmdx

@qmdx 我看过那个文档,个人认为单独手写sql太麻烦了。明明在生成SQL语句时,不拼接逻辑删除字段到where语句的时候,就可以解决这个问题。

你的需求不符合大众,解决方法重写注入方法逻辑删除部分,自定义注入器

Comment From: mintonzhang

重写了的话 逻辑删除又不能用了

在2020年01月02日 11:57,qmdx 写道:

@qmdx 我看过那个文档,个人认为单独手写sql太麻烦了。明明在生成SQL语句时,不拼接逻辑删除字段到where语句的时候,就可以解决这个问题。

你的需求不符合大众,解决方法重写注入方法逻辑删除部分

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Comment From: mouzt

使用Wrapper可以分页插件但是,实现不了查询逻辑删除的数据。 使用 xml写sql,可以查询逻辑删除的数据,但是使用不了mybatis plus的分页插件了。 目前很矛盾呀~有啥好的解决方案吗??

Comment From: hdfg159

我感觉就只能自定义注入器了,然后搞几个通用方法