一、引言
@Table注解个人使用习惯
javax.persistence包下的@Table注解用于添加索引org.hibernate.annotations包下的@Table注解用于定义表名和添加表注释
表名&表注释
使用org.hibernate.annotations包下@Table注解;
appliesTo用于定义表名;
comment用来定义表注释。
/**
* @author zengwei
* @email 1014483974@qq.com
* @data 2021-06-02
*
* 能日赚30的APP试玩平台推荐,亲测有效
*(https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
*/
@Table(appliesTo = "admin", comment = "官方账号")
在数据库中生成的表结构则有表注释,方便后期维护。

二、主键索引
使用javax.persistence包下@Id、@GeneratedValue注解;
在指定字段上,加上@Id、@GeneratedValue注解;
@Id 注解可将实体Bean中某个属性定义为主键;
GenerationType下有4种类型(4种主键生成策略)。
我这里以主键自增举例
/**
* @author zengwei
* @email 1014483974@qq.com
* @data 2021-06-02
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "int(11) comment 'id'")
private Long id;
三、普通索引
使用javax.persistence包下@Table注解, @Index定义普通索引
/**
* @author zengwei
* @email 1014483974@qq.com
* @data 2021-06-02
*
* 能日赚30的APP试玩平台推荐,亲测有效
*(https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
*/
@Table(indexes = {
@Index(columnList = "name"),
@Index(columnList = "account")
})

四、组合索引
使用javax.persistence包下@Table注解,在@Index中的name参数命名相同的名称,columnList 参数写入对应字段名
/**
* @author zengwei
* @email 1014483974@qq.com
* @data 2021-06-02
*
* 能日赚30的APP试玩平台推荐,亲测有效
*(https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
*/
@Table(indexes = {
@Index(name = "name_account", columnList = "name"),
@Index(name = "name_account", columnList = "account")
})

五、唯一索引
1、单列唯一索引
使用javax.persistence包下@Table注解,@UniqueConstraint指定单个字段名
/**
* @author zengwei
* @email 1014483974@qq.com
* @data 2021-06-02
*
* 能日赚30的APP试玩平台推荐,亲测有效
* (https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
*/
@Table(uniqueConstraints = @UniqueConstraint(columnNames= {"name"}))

2、单列唯一组合索引
使用javax.persistence包下@Table注解,@UniqueConstraint指定多个字段名
/**
* @author zengwei
* @email 1014483974@qq.com
* @data 2021-06-02
*
* 能日赚30的APP试玩平台推荐,亲测有效
* (https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
*/
@Table(uniqueConstraints = @UniqueConstraint(columnNames= {"name", "account"}))

3、多列唯一组合索引
使用javax.persistence包下@Table注解,uniqueConstraints 下指定多个@UniqueConstraint
/**
* @author zengwei
* @email 1014483974@qq.com
* @data 2021-06-02
*
* 能日赚30的APP试玩平台推荐,亲测有效
* (https://mp.weixin.qq.com/s/V5j45WYoyIvFsZbua56RSQ)
*/
@Table(uniqueConstraints = {
@UniqueConstraint(columnNames={"name", "del"}),
@UniqueConstraint(columnNames={"account", "del"})
})

未经允许,禁止转载
