一、引言
@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"})
})
未經允許,禁止轉載