您好,登录后才能下订单哦!
Mybatis plus逻辑删除注解@TableLogic的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
首先这个注解是苞米豆出品,也就是我们常说的mybatis升级版的东西。
简单讲一下这个注解的用法:我们在做数据库设计的时候有时候哪怕是删除也不会真的走物理删除,毕竟这样很多数据就不可恢复了,大多数时候很多删除都是用逻辑删除。
简单来说物理删除就是真的把这条数据从数据库删除了。
而逻辑删除主要是把表中的某一个字段作为标识符,一般我们常用的会默认初始为0,当我们想要删除这条数据的时候会把这个标识符改成1。这样在我们的常识里这条记录就被删除了。并且任何的查询都会添加这个条件,也就是要在代码中保证查询出来的数据是有效的。
刚刚已经说了这个注解是用于逻辑删除的,代表一个标识符,既然是标识符肯定要有值了,比如我上面说的0表示存在,1表示删除。但是不能排除有的设计就是不按照常理,比如1表示存在,2表示删除。所以@TableLogic注解是可以设置默认值的。用法如下:
@TableLogic(value=“存在标识”,delval=“删除标识”) private Integer del_flag;
如果不写value和delval会默认存在标识是0.删除标识是1.
这个注解的用处就比较简单了,当我们在实体类中某一个字段添加了这个注解,就相当于告诉mp这个字段是个标识符。我们调用BaseMapper或者调用IService的所有增删改查方法会受影响。
查询的时候用条件构造器,不用再对这个字段进行判断,会自动筛选出存在的值。这里需要注意拿我上面的demo举例:哪怕我们传条件del_flag = 1,也不会生效。简单总结下:用mp条件构造器查询出来的结果一定是逻辑存在的
修改的时候差不多,如果我们把实体对象的del_flag 赋值为1然后保存,也是保存不成功的。
删除的时候我们如果不用这个注解,用mp的delete方法或者remove方法都是物理删除。但是如果用了这个注解,那么所有的delete方法或者remove方法都是逻辑删除,也就是将del_flag 改为1.
需要注意的是上面说的都只对mp的查询有影响,我们用xml或者注释的方式自己写sql是不生效的!
看完上述内容,你们掌握Mybatis plus逻辑删除注解@TableLogic的方法是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。