1. 程式人生 > >Spring JPA註解和Column屬性 詳解

Spring JPA註解和Column屬性 詳解

fault efault htm lan oracle runt arch public cal

該註解的定義如下:

@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface Column {
String name() default "";
boolean unique() default false;
boolean nullable() default true;
boolean insertable() default true;
boolean updatable() default true;
String columnDefinition() default "";
String table() default "";
int length() default 255;
int precision() default 0;
int scale() default 0;
}

name
name屬性定義了被標註字段在數據庫表中所對應字段的名稱;

unique
unique屬性表示該字段是否為唯一標識,默認為false。如果表中有一個字段需要唯一標識,則既可以使用該標記,也可以使用@Table標記中的@UniqueConstraint。

nullable
nullable屬性表示該字段是否可以為null值,默認為true。

insertable
insertable屬性表示在使用“INSERT”腳本插入數據時,是否需要插入該字段的值。

updatable
updatable屬性表示在使用“UPDATE”腳本插入數據時,是否需要更新該字段的值。insertable和updatable屬性一般多用於只讀的屬性,例如主鍵和外鍵等。這些字段的值通常是自動生成的。

columnDefinition
columnDefinition屬性表示創建表時,該字段創建的SQL語句,一般用於通過Entity生成表定義時使用。(也就是說,如果DB中表已經建好,該屬性沒有必要使用。)

table
table屬性定義了包含當前字段的表名。

length
length屬性表示字段的長度,當字段的類型為varchar時,該屬性才有效,默認為255個字符。

precision和scale
precision屬性和scale屬性表示精度,當字段類型為double時,precision表示數值的總長度,scale表示小數點所占的位數。

API文檔地址: http://docs.oracle.com/javaee/5/api/javax/persistence/Column.html

Spring JPA註解和Column屬性 詳解