mybatis-plus逻辑删除deleted

项目中数据库表设计原则用到了逻辑删除:数据本身没有被删除,只是将deleted字段设置为1

mybatis-plus在逻辑删除方面的设置如下:

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl//sql打印
  global-config:
    db-config:
      logic-delete-field: deleted//逻辑删除
      logic-delete-value: 1
      logic-not-delete-value: 0

在实体中,相关的设置如下:

 /**
     * 逻辑删除 1删除 0 未删除
     */
    @TableLogic
    private Integer deleted;

测试过,全局配置和在实体中加入@TableLogic注解,可以二选一,因为在实体中加入太麻烦,所以建议全局配置,实体中可以不写注解,也可以达到逻辑删除的效果

最后:关于deleted在数据库的存储问题,我一直存的类型是tinyint(1) ,这是对的,因为它的选值不是0就是1

今天在用代码生成器的时候,发现生成的实体是Boolean类型的,查询资料后的结论是,tinyint(1)对应Boolean

关键的问题是,我以为这个1是长度,其实不是,tinyint(1)理论上只能存储0和1(实测实际上也可以存其他值),要存其他值可以设置为tinyint(4)

建议:以后将只存储一个数字的字段设置为tinyint(4), 包括逻辑删除,这样在用代码生成器时自动反射为Integer

最后结论:

1. 逻辑删除用mybatis-plus的全局配置即可

2. 只存储一个数字的字段设置为tinyint(4), 包括逻辑删除deleted

 

posted on 2021-12-16 17:03  rachelgarden  阅读(2214)  评论(0编辑  收藏  举报

导航