


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1.類級別注解Entity Table實體類數(shù)句庫表Entity(name=tableName) - 必須,注解將一個類屬性:為一個實體 bean。name - 可選,對應數(shù)據(jù)庫中的一個表。若表名與實體類名相同,則可以省略。Table(name=,catalog=,schema=)- 可選,通常和Entity 配合使用,只能標注在實體的 class 定義處,表示實體對應的數(shù)據(jù)庫表的信息。屬性:name -需可選,表示表的名稱,默認地,表名和實體名稱一致,只有在不一致的情況下才要指定表名catalogschema- 可選,表示 Catalog 名稱,默認為 Catalog().- 可選 , 表示
2、 Schema 名稱 , 默認為 Schema().2.屬性級別注解IdVer生成主鍵定義樂觀鎖ColumnTransient表的列定義暫態(tài)屬性2.1與主鍵相關注解- 必須,定義了到數(shù)據(jù)庫表的主鍵的屬性,一個實體只能有一個屬性被為Id主鍵,置于 getx() 前。GeneratedValue(strategy=GenerationType,generator=) - 可選,用于定義主鍵生成策略。屬性:Strategy - 表示主鍵生成策略,取值有:GenerationType.AUTO - 根據(jù)底層數(shù)據(jù)庫自動選擇(默認),若數(shù)據(jù)庫支持自動增長類型,則為自動增長。GenerationType.I
3、NDENTITY - 根據(jù)數(shù)據(jù)庫的 Identity 字段生成,支持 DB2、MS、SQL Server、SyBase 與 HyperanoicSQL 數(shù)據(jù)庫的”Hibernate 可以指定 uuid 等主鍵生成方式SequenceGenerator 注解了一個數(shù)據(jù)庫序列。屬性:name - 表示該表主鍵生成策略名稱,它被在GeneratedValue 中設置的“gernerator值中。sequenceName - 表示生成策略用到的數(shù)據(jù)庫序列名稱。initialValue - 表示主鍵初始值,默認為 0.allocationSize - 每次主鍵值增加的大小,例如設置成 1,則表示每次創(chuàng)建
4、新后自動加 1,默認為 50.示例 : IdGeneratedValues(strategy=StrategyType.SEQUENCE) publicgetPk() return pk;Hibernate 的類型為 field 時,在字段上進行注解聲;類型為 property 時,在 getter 方法上進行注釋。2.2與非主鍵相關注解Generator - 表示主鍵的名稱,這個屬性通常和 ORM 框架相關 , 例如:Identity類型主鍵。GenerationType.SEQUENCE - 使用 Sequence 來決定主鍵的取值,適合 Oracle、DB2等支持 Sequence 的數(shù)
5、據(jù)庫,一般結合SequenceGenerator 使用。(Oracle 沒有自動增長類型,只能用 Sequence)GenerationType.TABLE- 使用指定表來決定主鍵取值,結合TableGenerator 使用。如:Id TableGenerator(name=tab_cat_gen,allocationSize=1) GeneratedValue(Strategy=GenerationType.Table)Ver的支持- 可以在實體 bean 中使用Ver注解,通過這種方式可添加對樂觀鎖定Basic - 用于屬性的存取策略:Basic(fetch=FetchType.EAGER
6、)即時獲?。J的存取策略)Basic(fetch=FetchType.LAZY)延遲獲取Temporal - 用于定義到數(shù)據(jù)庫的時間精度:Temporal(TemporalType=DATE)日期Temporal(TemporalType=TIME)Temporal(TemporalType=TIMEST時間) 兩者兼具Column - 可將屬性中工具非常有作用。屬性:到列,使用該注解來覆蓋默認值,Column 描述了數(shù)據(jù)庫表該字段的詳細定義,這對于根據(jù) JPA 注解生成數(shù)據(jù)庫表結構的name - 可選,表示數(shù)據(jù)庫表中該字段的名稱,默認情形屬性名稱一致nullableunique - len
7、gth - 可選,表示該字段是否允許為 null,默認為 true可選,表示該字段是否是唯一標識,默認為 false可選,表示該字段的大小,僅對 String 類型的字段有效,默認值 255.insertable INSETRTupdateable在字段,該-可選,表示在 ORM 框架執(zhí)行操作時,該字段是否應出現(xiàn)語句中,默認為 true可選,表示在 ORM 框架執(zhí)行更新操作時,該字段是否應該出現(xiàn) UPDATE 語句中,默認為 true. 對于一經(jīng)創(chuàng)建就不可以更改的屬性非常有用,如對于 birthday 字段。-columnDefinition- 可選,表示該字段在數(shù)據(jù)庫中的實際類型。通常 OR
8、M 框架可以根據(jù)據(jù)屬性類型自動判斷數(shù)據(jù)庫中字段的類型,但是對于 Date類型仍無法確定數(shù)此庫中字段類型究竟是 DATE,TIME 還是 TIMEST.外 ,String 的默認類型為 VARCHAR, 如果要將 String類型到特定數(shù)據(jù)庫的 BLOB 或 TEXT 字段類型,該屬性非常有用。示例 :Column(name=BIRTH,nullable=false,columnDefinition=DATE)public String getBithday() return birthday;Transient - 可選,表示該屬性并非一個到數(shù)據(jù)庫表的字段的,ORM 框架將忽略該屬性,如果一個
9、屬性并非數(shù)據(jù)庫表的字段,就務必將其標示為Transient,否則 ORM 框架默認其注解為 Basic示例 :/ 根據(jù) birth 計算出 age 屬性TransientpublicgetAge() return getYear(new Date() - getYear(birth);2.3 無注解屬性的默認值如果屬性為單一類型,則為Basic,否則,如果屬性對應的類型定義了Embeddable 注解,則為Embedded,否則,如果屬性對應的類型實現(xiàn)了 Serializable, 則屬性被存該對象的 serialized 版本,為Basic 并在一個列中保否則,如果該屬性的類型為 java.
10、sql.Clob 或 java.sql.Blob,則作為Lob 并的 LobType.。到適當3.繼承關系Inheritance 注解來定義所選擇的策略. 這個注解需要在每個類層次結構(classhierarchy) 最頂端的實體類上使用4.實體 bean 的關聯(lián)關系4.1 關聯(lián)的一些定義單向一對多:一方有集合屬性,包含多個多方,而多方?jīng)]有一方的。用戶-電子郵件單向多對一:多方有一方的 雙向一對多:兩邊都有多方的雙向多對一:兩邊都有多方的,一方?jīng)]有多方的。類別- 類別,方便查詢。班級- 學生,方便查詢。單向多對多:需要一個中間表來兩個實體表。-文章單向一對一:數(shù)據(jù)唯一,數(shù)據(jù)庫數(shù)據(jù)也是一對一。艦
11、船- 水手主鍵相同的一對一:使用同一個主鍵,省掉外鍵關聯(lián)??蛻? 地址單向:關系寫哪邊,就由誰管理。雙向:一般由多方管理。OneToMany(mappedBy=對方) /反向配置,對方管理。4.2關聯(lián)的一些共有屬性OneToOne、OneToMany、ManyToOne、ManyToMany 的共有屬性:JoinColumn - 可選,用于描述一個關聯(lián)的字段。JoinColumn 和Column 類似,介量描述的不是一個簡單字段,而是一個關聯(lián)字段,例如描述一個 ManyToOne 的字段。屬性:name - 該字段的名稱,由于JoinColumn 描述的是一個關聯(lián)字段,如 ManyToOne,
12、 則默認的名稱由其關聯(lián)的實體決定。例如,實體 Order 有一個 user 屬性來關聯(lián)實體 User, 則 Order 的 user 屬性為一個外鍵 ,其默認的名稱為實體 User 的名稱 + 下劃線 + 實體 User 的主鍵名稱4.3一對一關聯(lián)OneToOne 表示一個一對一的1.主表類 A 與從表類B 的主鍵值相對應。主表:OneToOne(cascade = CascadeType.ALL) PrimaryKeyJoinColumnpublic B getB()Return b;return b;從表:無2.主表 A 中有一個從表屬性是B 類型的b主表:OneToOne(cascade
13、 = CascadeType.ALL)JoinColumn(name=主表外鍵)/這里指定的是數(shù)據(jù)庫中的外鍵字段。 public B getB()Entity - 配置集合屬性類型,如:OneToMany(Entity=Book.class)fetch - 配置加載方式。取值有Fetch.EAGER -及時加載,多對一默認是 Fetch.EAGERFetch.LAZY - 延遲加載,一對多默認是 Fetch.LAZYcascade - 設置級聯(lián)方式,取值有:CascadeType.PERSIST - 保存 CascadeType.REMOVE - 刪除 CascadeType.MERGE -
14、修改 CascadeType.REFRESH - 刷新CascadeType.ALL - 全部從表:無3.主表 A 中有一個從表屬性是B 類型的b,同時,從表 B 中有一個主表屬性是 A 類型的 a主表:OneToOne(cascade = CascadeType.ALL)JoinColumn(name=主表外鍵)/這里指定的是數(shù)據(jù)庫中的外鍵字段。 public B getB()return b;從表:OneToOne(mappedBy = 主表類中的從表屬性)public 主表類 get 主表類()return 主表對象注意:JoinColumn 是可選的。默認值是從表變量名+_+從表的主鍵
15、(注意,這里加的是主鍵。而不是主鍵對應的變量)。多對一關聯(lián)ManyToOne - 表示一個多對一的,該注解標注的屬性通常是數(shù)據(jù)庫表的外鍵。單向多對一:多方有一方的,一方?jīng)]有多方的。在多方ManyToOne(Entity=X.class)/指定關聯(lián)對象 JoinColumn(name=)/指定產(chǎn)生的外鍵字段名2.雙向多對一:配置方式同雙向一對多。示例 :/ 訂單 Order 和用戶 User 是一個 ManyToOne 的關系/ 在 Order 類中定義 ManyToOne() JoinColumn(name=USER) public User getUser() return user;4.5一對多關聯(lián)OneToMany - 描述一個一對多的關聯(lián),該屬性應該為集合類型,在數(shù)據(jù)庫中并沒有實際字段。1.單向一對多:一方有集合屬性,包含多個多方,而多方?jīng)]有一方的。4.6多對多關聯(lián)ManyToMany - 可選,描述一個多對多的關聯(lián)。屬性:Entity - 表示多對多關聯(lián)的另一個實體類的全名,例如:package.Book.class mappedBy - 用在雙向關聯(lián)中,把關系的權翻轉。單向多對多關聯(lián):在主控方加入ManyToMany 注解即可。雙向多對多關聯(lián):兩個實體間互相關聯(lián)的屬性必須標記為Many
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)學小學生課件
- 物理十七章試題及答案
- 公司轉讓員工合同范例
- 農(nóng)村用地建房合同范例
- 門診疫情防控試題及答案
- 保安收費煤礦合同范例
- 保險 出合同樣本
- 健身房簽到合同范例
- 勞務合同標準文本拳館
- 制式創(chuàng)業(yè)合作合同范例
- 醫(yī)學統(tǒng)計學練習題與答案
- 歐洲質量獎課件
- 西班牙文化概況
- 樁側摩阻力ppt(圖文豐富共28)
- 預拌混凝土出廠合格證2
- 小學校本課程教材《鼓號隊》
- 云南省飲用水生產(chǎn)企業(yè)名錄534家
- 9E燃機系統(tǒng)培訓演3.25
- 蘇霍姆林斯基教育思想-PPT課件
- 脊髓損傷康復評定治療PPT課件
- 啤酒貼標機畢業(yè)設計論文
評論
0/150
提交評論