Skip to content

注解速查

本页列出 AutoTable 所有注解,便于快速查阅。

表级注解

注解作用必需详情
@AutoTable激活表自动维护,指定表名/schema/注释查看
@Ignore忽略实体,不参与表维护查看
@MysqlEngineMySQL 专属,指定表引擎查看
@MysqlCharsetMySQL 专属,指定表字符集查看

@AutoTable 参数

java
@AutoTable(
    value = "user",           // 表名,默认类名转下划线
    schema = "",              // schema,默认从连接获取
    comment = "用户表",        // 表注释
    dialect = "",             // 指定数据库方言
    initSql = ""              // 初始化 SQL 文件路径
)

列级注解

注解作用详情
@AutoColumn聚合注解,一次性配置列属性查看
@AutoColumns多数据库适配,配置多个 @AutoColumn查看
@ColumnName指定列名查看
@ColumnType指定列类型和长度查看
@ColumnNotNull非空约束查看
@ColumnDefault默认值查看
@ColumnComment列注释查看
@Ignore忽略字段查看

@AutoColumn 参数

java
@AutoColumn(
    value = "user_name",      // 列名
    type = "varchar",         // 类型
    length = 50,              // 长度
    decimalLength = 2,        // 小数位
    notNull = true,           // 非空
    defaultValue = "",        // 默认值
    defaultValueType = UNDEFINED, // 默认值类型
    comment = "用户名",        // 注释
    sort = 0,                 // 排序
    dialect = ""              // 指定数据库
)

@ColumnDefault 默认值类型

类型说明
UNDEFINED使用 value 属性值
EMPTY_STRING空字符串 ''
NULLNULL 值

主键注解

注解作用详情
@PrimaryKey声明主键查看
@AutoIncrement声明自增(非主键也可用)查看

@PrimaryKey 参数

java
@PrimaryKey(
    autoIncrement = true    // 是否自增
)

索引注解

注解作用详情
@Index字段级索引查看
@IndexField复合索引中的字段配置查看
@TableIndex表级索引(复合索引)查看
@TableIndexes多个表级索引查看

@Index 参数

java
@Index(
    name = "idx_email",       // 索引名,空则自动生成
    type = IndexTypeEnum.NORMAL,  // 索引类型
    method = "",              // 索引方法(BTREE/HASH 等)
    comment = ""              // 索引注释
)

索引类型 IndexTypeEnum

类型说明
NORMAL普通索引
UNIQUE唯一索引
FULLTEXT全文索引(MySQL)

@TableIndex 参数

java
@TableIndex(
    name = "idx_name_age",    // 索引名
    fields = {"name", "age"}, // 字段列表
    type = IndexTypeEnum.NORMAL
)

MySQL 专属注解

注解作用
@MysqlEngine表引擎(InnoDB/MyISAM)
@MysqlCharset表/列字符集和排序规则
@MysqlColumnCharset列字符集
@MysqlColumnUnsigned无符号数字
@MysqlColumnZerofill前置补零

拦截器接口

接口触发时机详情
AutoTableAnnotationInterceptor注解扫描前查看
BuildTableMetadataInterceptor元数据构建后查看
CreateTableInterceptor建表前查看
ModifyTableInterceptor改表前查看

回调接口

接口触发时机详情
AutoTableReadyCallback启动前查看
CreateDatabaseFinishCallback数据库创建后查看
CreateTableFinishCallback表创建后查看
ModifyTableFinishCallback表修改后查看
DeleteTableFinishCallback表删除后查看
CompareTableFinishCallback表比对后查看
ValidateFinishCallback校验完成后查看
RunBeforeCallback单表执行前查看
RunAfterCallback单表执行后查看
AutoTableFinishCallback全部完成后查看

快速示例

java
@Data
@AutoTable(comment = "用户表")
@MysqlCharset(charset = "utf8mb4", collate = "utf8mb4_general_ci")
@TableIndex(name = "idx_name_age", fields = {"username", "age"})
public class User {
    
    @PrimaryKey(autoIncrement = true)
    private Long id;
    
    @AutoColumn(value = "user_name", length = 50, notNull = true, comment = "用户名")
    private String username;
    
    @ColumnComment("邮箱")
    @Index(type = IndexTypeEnum.UNIQUE)
    private String email;
    
    @ColumnDefault("0")
    private Integer age;
    
    @ColumnType(value = "text")
    private String bio;
    
    @Ignore  // 忽略此字段
    private transient String tempData;
}

Released under the Apache 2.0 License.