定义索引
以下注解,用于描述索引信息的,即可以标注于实体上描述组合索引,也可以标注于字段上描述独立索引
@Index
在字段上声明该字段为索引字段
属性 | 类型 | 必填 | 默认 | 释义 |
---|---|---|---|---|
name | String | 否 | 当前字段的列名称 | 索引的名字, 框架会自动在名字前追加配置的前缀 |
type | IndexTypeEnum(NORMAL, UNIQUE) | 否 | NORMAL | 索引类型(普通索引,唯一索引) |
comment | String | 否 | '' | 索引注释 |
查看样例
java
// 测试表
@AutoTable
public class TestTable {
private Long id;
@Index
private String name;
@Index(type = IndexTypeEnum.UNIQUE)
private String phone;
......
}
@TableIndex
可用于实体上,声明多字段联合的索引使用的,fields与indexFields必须配置一个,不然不生效
属性 | 类型 | 必填 | 默认 | 释义 |
---|---|---|---|---|
name | String | 否 | '' | 索引的名字, 框架会自动在名字前追加配置的前缀 |
type | IndexTypeEnum(NORMAL, UNIQUE) | 否 | NORMAL | 索引类型(普通索引,唯一索引) |
fields | String[] | 否 | {} | 字段名,支持多字段。注意,多字段的情况下,字段书序即构建索引时候的顺序,牵扯索引左匹配问题。该配置优先级低于indexFields ,具体可参考indexFields 的说明 |
indexFields | IndexField(field: String, sort: IndexSortTypeEnum(ASC, DESC))[] | 否 | {} | 字段名,兼容需要指定字段排序方式的模式。注意,多字段的情况下,字段书序即构建索引时候的顺序,牵扯索引左匹配问题。该配置优先级高于fields ,也就是说,生成索引字段的顺序,该配置中的列会排在fields 之前,同时,如果该配置与fields 之间存在重名的情况,以该配置为主 |
comment | String | 否 | '' | 索引注释 |
查看样例
java
// 测试表
@AutoTable
@TableIndex(name = "name_phone",
type=IndexTypeEnum.UNIQUE,
fields={"name", "phone"},
comment="姓名电话联合索引")
public class TestTable {
private Long id;
private String name;
private String phone;
......
}
java
// 测试表
@AutoTable
@TableIndex(name = "name_phone",
indexFields={
@IndexField(field="name", sort=IndexSortTypeEnum.ASC),
@IndexField(field="phone", sort=IndexSortTypeEnum.DESC)
},
comment="姓名电话联合索引,姓名正序,电话倒序")
public class TestTable {
private Long id;
private String name;
private String phone;
......
}
@TableIndexes
多字段联合索引的集合
属性 | 类型 | 必填 | 默认 | 释义 |
---|---|---|---|---|
value | TableIndex[] | 是 | 索引集合 |
查看样例
java
// 测试表
@AutoTable
@TableIndexes({
@TableIndex(name = "name_phone", fields={"name", "phone"}, comment="姓名电话联合索引"),
@TableIndex(name = "cardNumber", type=IndexTypeEnum.UNIQUE, fields={"cardNumber"}, comment="身份证号唯一索引")
})
public class TestTable {
private Long id;
private String name;
private String phone;
private String cardNumber;
......
}