標籤:
欄位名和屬性名稱相同
Annotation:預設為@Basic
注意:如果在成員屬性沒有加入任何註解,則預設在前面加入了@Basic
Xml中不用寫column
欄位名和屬性名稱不同
Annotation:使用@Column(name=”columnName”)進行註解
例如:
* @Entity 表示下面的這個Teacher是一個實體類 * @Table 表示映射到資料表中的表名,其中的name參數表示"表名稱" * @Column 表示實體類成員屬性映射資料表中的欄位名,其中name參數指定一個新的欄位名 * @Id 表示主鍵Id */ @Entity @Table(name="_teacher") public class Teacher { private int id; private String name; private String title; //設定主鍵使用@Id @Id public int getId() { return id; } @Column(name="_name")//欄位名與屬性不同時 public String getName() { return name; } ……
Xml:
- <property name="name" column="_name"/>
不需要(持久化)psersistence的欄位
就是不實體類的某個成員屬性不需要存入資料庫中
Annotation:使用@Transient 進行註解就可以了。
例如:
@Transient public String getTitle() { return title; }
Xml:不寫(就是不需要對這個成員屬性進行映射)
映射日期與時間類型,指定時間精度
Annotation:使用@Temporal(value=TemporalType)來註解表示日期和時間的註解
其中TemporalType有三個值:TemporalType.TIMESTAMP 表示yyyy-MM-dd HH:mm:ss
TemporalType.DATE 表示yyyy-MM-dd
TemporalType.TIME 表示HH:mm:ss
@Temporal(value=TemporalType.DATE) public Date getBirthDate() { return birthDate; }
注意:當使用註解時,屬性為value時,則這個屬性名稱可以省略,例如:@Temporal(TemporalType)
Xml:使用type屬性指定hibernate類型
<property name="birthDate" type="date"/>
注意:hibernate日期時間類型有:date, time, timestamp,當然您也可以使用Java封裝類
映射枚舉類型
Annotation:使用@Enumerated(value=EnumType)來註解表示此成員屬性為枚舉映射到資料庫
其中EnumType有二個值:①EnumType.STRING 表示直接將枚舉名稱存入資料庫
②EnumType.ORDINAL 表示將枚舉所對應的數值存入資料庫
Xml:映射非常的麻煩,先要定義自訂類型,然後再使用這個定義的類型……
http://blog.sina.com.cn/s/blog_4979ec3e01016y0o.html
hibernate欄位名和屬性