@Entity
將一個 POJO 類注解成一個實體 bean ( 持久化 POJO 類 )
@Table
為實體 bean 映射指定具體的表,如果該注解沒有被聲明,系統將使用默認值 ( 即實體 bean 不帶包名的短類名 )
@Id
將實體bean中的某個屬性定義為標識符 ( identifier )
@GeneratedValue
該注解可以定義該標識符的生成策略 ( 默認是 AUTO 策略 ) :
AUTO — 可以是 IDENTITY,或 SEQUENCE 或 TABLE 類型,這取決于不同的底層數據庫。
TABLE — 使用表保存id值
IDENTITY — 自然遞增
SEQUENCE — 序列
@Transient
被注解成 @Transient 的 getter 方法或屬性,將不會被持久化,hibernate 會忽略這些字段和屬性。
@Basic
所有沒有定義注解的屬性,等價于在其上面添加了 @Basic 注解.。通過 @Basic注解可以聲明屬性的獲取策略 ( fetch strategy )
@Temporal
在核心的 Java API 中并沒有定義時間精度 ( temporal precision )。因此處理時間類型數據時,你還需要定義將其存儲在數據庫中所預期的精度。
在數據庫中,表示時間類型的數據有 DATE,TIME,和 TIMESTAMP 三種精度 ( 即單純的日期,時間,或者兩者兼備 )。 可使用 @Temporal 注解來調整精度。
@Column
將實體 bean 中的屬性映射到表中的列。
@Column(
name = "columnName"; (1)
boolean unique() default false; (2)
boolean nullable() default true; (3)
boolean insertable() default true; (4)
boolean updatable() default true; (5)
String columnDefinition() default ""; (6)
String table() default ""; (7)
int length() default 255;