五、@Basic(fetch=FetchType,optional=true)數據庫
可選框架
@Basic表示一個簡單的屬性到數據庫表的字段的映射,對於沒有任何標註的getXxxx()方法,默認 即爲 @Basic工具
fetch: 表示該屬性的讀取策略,有EAGER和LAZY兩種,分別表示主支抓取和延遲加載,默認爲EAGER.fetch
(1)、FetchType.LAZY:懶加載,加載一個實體時,定義懶加載的屬性不會立刻從數據庫中加載。.net
(2)、FetchType.EAGER:急加載,加載一個實體時,定義急加載的屬性會當即從數據庫中加載。對象
(3)、比方User類有兩個屬性,name跟address,就像百度知道,登陸後用戶名是須要顯示出來的,此屬性用到的概率極大,要立刻到數據庫查,用急加載;而用戶地址大多數狀況下不須要顯示出來,只有在查看用戶資料是才須要顯示,須要用了才查數據庫,用懶加載就行了。因此,並非一登陸就把用戶的全部資料都加載到對象中,因而有了這兩種加載模式。 optional:表示該屬性是否容許爲null,默認爲trueblog
示例:get
@Basic(optional=false)博客
public String getAddress() { return address; }it
六、@Column
可選
@Column描述了數據庫表中該字段的詳細定義,這對於根據JPA註解生成數據庫表結構的工具很是 有做用.
name:表示數據庫表中該字段的名稱,默認情形屬性名稱一致
nullable:表示該字段是否容許爲null,默認爲true
unique:表示該字段是不是惟一標識,默認爲false
length:表示該字段的大小,僅對String類型的字段有效
insertable:表示在ORM框架執行插入操做時,該字段是否應出現INSETRT語句中,默認爲true
updateable:表示在ORM框架執行更新操做時,該字段是否應該出如今UPDATE語句中,默認爲 true.對於一經建立就不能夠更改的字段,該屬性很是有用,如對於birthday字段.
columnDefinition:表示該字段在數據庫中的實際類型.一般ORM框架能夠根據屬性類型自動判 斷數據庫中字段的類型,可是對於Date類型仍沒法肯定數據庫中字段類型到底是DATE,TIME仍是 TIMESTAMP.此外,String的默認映射類型爲VARCHAR,若是要將String類型映射到特定數據庫的 BLOB或TEXT字段類型,該屬性很是有用.
示例:
@Column(name="BIRTH",nullable="false",columnDefinition="DATE")
public String getBithday() { return birthday; }
七、@Transient
可選
@Transient表示該屬性並不是一個到數據庫表的字段的映射,ORM框架將忽略該屬性. 若是一個屬性並不是數據庫表的字段映射,就務必將其標示爲 @Transient ,不然,ORM框架默認其注 解爲 @Basic
示例: //根據birth計算出age屬性
@Transient
public int getAge() { return getYear(new Date()) - getYear(birth); }
八、@ManyToOne(fetch=FetchType,cascade=CascadeType)
可選
@ManyToOne表示一個多對一的映射,該註解標註的屬性一般是數據庫表的外鍵
optional:是否容許該字段爲null,該屬性應該根據數據庫表的外鍵約束來肯定,默認爲true
fetch:表示抓取策略,默認爲FetchType.EAGER
cascade:表示默認的級聯操做策略,能夠指定爲ALL,PERSIST,MERGE,REFRESH和REMOVE中的若 幹組合,默認爲無級聯操做
targetEntity:表示該屬性關聯的實體類型.該屬性一般沒必要指定,ORM框架根據屬性類型自動判 斷targetEntity.
示例:
//訂單Order和用戶User是一個ManyToOne的關係
//在Order類中定義
@ManyToOne()
@JoinColumn(name="USER")
public User getUser() { return user; }
九、@JoinColumn
可選
@JoinColumn和@Column相似,介量描述的不是一個簡單字段,而一一個關聯字段,例如.描述一個 @ManyToOne的字段.
name:該字段的名稱.因爲@JoinColumn描述的是一個關聯字段,如ManyToOne,則默認的名稱由 其關聯的實體決定. 例如,實體Order有一個user屬性來關聯實體User,則Order的user屬性爲一個外鍵, 其默認的名稱爲實體User的名稱+下劃線+實體User的主鍵名稱 示例: 見@ManyToOne
--------------------- 本文來自 laingew 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/u014131893/article/details/22109665?utm_source=copy