批注类型 TableIndex
@Target({TYPE,ANNOTATION_TYPE})
@Retention(RUNTIME)
@Documented
@Repeatable(TableIndexes.class)
public @interface TableIndex
设置表索引,fields与indexFields必须配置一个,不然不生效
- 作者:
- tangzc
-
可选元素概要
可选元素修饰符和类型可选元素说明String[]字段名:支持多字段字段名:兼容需要指定字段排序方式的模式索引的名字,设置了名字例如union_name,系统会默认在名字前加auto_idx_前缀,也就是auto_idx_union_name
-
元素详细资料
-
name
String name索引的名字,设置了名字例如union_name,系统会默认在名字前加auto_idx_前缀,也就是auto_idx_union_name
如果为空,则采用如下规则:
1. 优先使用 auto_idx_`[表名]`_`[字段名1]`_`[字段名2]`
2. 若超长(63字符)了,使用 auto_idx_`[表名]`_`[所有字段名链接后的hash值]`
注:长度定义63是兼容了pgsql的63字符以及mysql的64字符考虑的,Oracle本就不打算兼容,所以不考虑它的30字符长度
3. 若仍超长了,使用 auto_idx_`[表名+所有字段名链接后的hash值]`
- 返回:
- 索引名
- 默认值:
""
-
type
IndexTypeEnum type- 返回:
- 索引类型标识
- 默认值:
NORMAL
-
method
String method- 返回:
- 索引方法 Mysql中,默认为BTREE,可选的:BTREE、FULLTEXT、SPATIAL Pgsql中,默认为BTREE,可选的:BTREE、GiST、GIN H2中,默认为BTREE,可选的:BTREE、HASH、FULLTEXT、SPATIAL H2中,默认为BTREE,可选的:BTREE、HASH、FULLTEXT、SPATIAL
- 默认值:
""
-
fields
String[] fields- 返回:
- 索引字段配置
- 默认值:
{}
-
indexFields
IndexField[] indexFields字段名:兼容需要指定字段排序方式的模式
注意,多字段的情况下,字段书序即构建索引时候的顺序,牵扯索引左匹配问题
该配置优先级高于
fields(),也就是说,生成索引字段的顺序,该配置中的列会排在fields()之前,同时,如果该配置与fields()之间存在重名的情况,以该配置为主- 返回:
- 索引字段配置
- 默认值:
{}
-
comment
String comment- 返回:
- 索引注释: 默认空字符串
- 默认值:
""
-