itfsw / mybatis-generator-plugin

Mybatis Generator 代码生成插件拓展,增加:查询单条数据插件(SelectOneByExamplePlugin)、MySQL分页插件(LimitPlugin)、数据Model链式构建插件(ModelBuilderPlugin)、Example Criteria 增强插件(ExampleEnhancedPlugin)、Example 目标包修改插件(ExampleTargetPlugin)、批量插入插件(BatchInsertPlugin)、逻辑删除插件(LogicalDeletePlugin)、数据Model属性对应Column获取插件(ModelColumnPlugin)、存在即更新(UpsertPlugin)、Selective选择插入更新增强插件(SelectiveEnhancedPlugin)、Table增加前缀插件(TableSuffixPlugin)、自定义注释插件(CommentPlugin)、增量插件(IncrementsPlugin)、查询结果选择性返回插件(SelectSelectivePlugin)、乐观锁插件(OptimisticLockerPlugin)、LombokPlugin等拓展。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

逻辑删除标识符的理解

Gowther opened this issue · comments

不知道logicalDeleteValue/logicalUnDeleteValue和生成的常量DEL_FLAG_ON/OFF是一个怎样的对应关系呢?按照我的理解DEL_FLAG_ON是说明删除标识符被置为true,DEL_FLAG_OFF说明删除标识符被置为false,但是实际上生成的与我理解的正好相反,您是怎样理解这个删除常量的呢?
配置:

    <property name="logicalDeleteColumn" value="is_deleted"/>
    <!-- 逻辑删除-已删除值 -->
    <property name="logicalDeleteValue" value="1"/>
    <!-- 逻辑删除-未删除值 -->
    <property name="logicalUnDeleteValue" value="0"/>

实际生成:

    public static final Boolean DEL_FLAG_ON = false;
    public static final Boolean DEL_FLAG_OFF = true;

logicalDeleteValue/logicalUnDeleteValue 分别对应 DEL_FLAG_OFF/DEL_FLAG_ON,这个是之前一些遗留项目作怪定下来的。按当时他们说法DEL_FLAG做开关,ON就是没删除OFF就是删除~~~~~,所以在写这个插件时为了兼顾这些所以就延续了这种说法,也是一时没想到更好的命名。

谢谢解答。我个人认为这个变量名有点反直觉,希望以后可以有一个更合适的命名~

一般的规范此列名为is_deleted,建议取名为 IS_DELETED/NOT_DELETED

已修正,同时增加相应配置选项方便自定义V1.0.17

关于唯一索引,有时候会把isdeleted字段设置加进唯一索引组合里面,所以删除字段我会改成 is_delete+1,但是在生成实体类的时候会报错,有点不方便,希望作者可以改进一下