文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mybatisplus的逻辑删除问题怎么解决

2023-07-05 11:04

关注

本文小编为大家详细介绍“mybatisplus的逻辑删除问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatisplus的逻辑删除问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

mybatisplus的逻辑删除

mp提供的逻辑删除实现起来非常简单

只需要在application.yml中进行逻辑删除的相关配置即可

mybatis-plus:    global-config:      db-config:        logic-delete-field: deleted # 全局逻辑删除的实体字段名        logic-delete-value: 1 # 逻辑已删除值(默认为1)        logic-not-delete-value: 0 # 逻辑未删除值(默认为0)        # 若逻辑已删除和未删除的值和默认值一样,则可以不配置这2项

测试代码

int i = mapper.deleteById(6);  System.out.println("rowAffected = " + i);

mybatisplus的逻辑删除问题怎么解决

可以看到,发出的SQL不再是DELETE,而是UPDATE

此时我们再执行一次SELECT

@Test  public void testSelect() {  List<User2> users = mapper.selectList(null);  }

mybatisplus的逻辑删除问题怎么解决

可以看到,发出的SQL语句,会自动在WHERE后面拼接逻辑未删除的条件。

查询出来的结果中,没有了id为6的王软蛋。

若想要SELECT的列,不包括逻辑删除的那一列,则可以在实体类中通过@TableField进行配置

@TableField(select = false)  private Integer deleted;

可以看到下图的执行结果中,SELECT中已经不包含deleted这一列了

mybatisplus的逻辑删除问题怎么解决

前面在application.yml中做的配置,是全局的。通常来说,对于多个表,我们也会统一逻辑删除字段的名称,统一逻辑已删除和未删除的值,所以全局配置即可。

当然,若要对某些表进行单独配置,在实体类的对应字段上使用@TableLogic即可。

@TableLogic(value = "0", delval = "1")  private Integer deleted;

【小结】

开启mp的逻辑删除后,会对SQL产生如下的影响

注意,上述的影响,只针对mp自动注入的SQL生效。如果是自己手动添加的自定义SQL,则不会生效。

比如:

public interface User2Mapper extends BaseMapper<User2> {  @Select("select * from user2")  List<User2> selectRaw();  }

调用这个selectRaw,则mp的逻辑删除不会生效。

另,逻辑删除可在application.yml中进行全局配置,也可在实体类中用@TableLogic进行局部配置。

使用mybatisplus逻辑删除,修改含有逻辑删除的字段爆错

mybatisplus在配置文件中配置如下

mybatisplus的逻辑删除问题怎么解决

以上是全局逻辑删除配置。

当使用mybatisplus生成的修改方法,修改含有showStatus对应的字段时,会报错。

错误sql语句如下

mybatisplus的逻辑删除问题怎么解决

而我要修改的如下:

mybatisplus的逻辑删除问题怎么解决

正确的修改的sql语句应该如下:

mybatisplus的逻辑删除问题怎么解决

所以我们可以在xml文件中单独写sql语句

或者不在配置文件中设置逻辑删除字段名 使用@TableLogic注解

如下:

mybatisplus的逻辑删除问题怎么解决

showStatus是表示此信息是否显示。

如:

mybatisplus的逻辑删除问题怎么解决

表示 show_status等于0时 brand_id (即id)=1591652104429125634 的信息不显示。

这样我们就是局部使用逻辑删除。

读到这里,这篇“mybatisplus的逻辑删除问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯