zoukankan      html  css  js  c++  java
  • mybatisplus逻辑删除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

  • 相关阅读:
    Python导学基础(三)输入、格式化输出、基本运算符
    题解-FJOI2014 树的重心
    题解-CF1307G Cow and Exercise
    题解-SHOI2005 树的双中心
    笔记-CF643E Bear and Destroying Subtrees
    题解-CF643G Choosing Ads
    扩展Lucas
    线性筛筛积性函数
    整除分块(数论)
    2019暑假集训DAY17(problem2.b)(杜教筛)
  • 原文地址:https://www.cnblogs.com/rachelgarden/p/15699058.html
Copyright © 2011-2022 走看看