Hibernate—— 注解

類級別注解

1、使用注解的目的:為了簡化繁瑣的ORM映射文件(*.hbm)的配置

2、JPA與Hibernate的關系

.什么是JPA?(全稱Java Persistence API(java持久化的API接口));JPA注解是JAVAEE的標準和規(guī)范

.JPA 是標準接口,Hibernate是實現(xiàn),但是其功能是JPA的超集。

.Hibernate通過hibernate-annotation,hibernate-entitymanager,hibnernate-core三個組件來實現(xiàn)JPA。

.一般在實際開發(fā)中,優(yōu)先考慮使用JPA注解,這樣更有利與程序的移植和擴展。

3、Hibernate注解的分類

類級別的注解,屬性級別注解,映射關系注解

類級別的注解.@Entity——表示實體類(一個實體類對應數(shù)據(jù)庫中的一張表)

類級別的注解.@Table

類級別的注解.@Embeddable——表示它是嵌入類

類級別的注解.Schema 和 catalog

4、

5、Hibernate類級別注解之@Entity注解

hibernate 配置文件

實體類1

實體類2

測試類

6、Hibernate類級別注解之@Table注解

一個數(shù)據(jù)庫必然屬于一個schema(模式),一個schema必然屬于一個catalog(目錄),一個模式包含了一個數(shù)據(jù)庫的對象,例如表、視圖等

從實現(xiàn)的角度來看,各種數(shù)據(jù)庫系統(tǒng)對Catalog和Schema的支持和實現(xiàn)方式千差萬別的。

其他的跟 5 一樣

7、Hibernate類級別注解之@Embeddable注解

@Embeddable

屬性級別注解

1、添加方式

一是寫在屬性字段上面;二是寫在屬性的get訪問器的上面

2、注解分別有 (加粗的)

@Id、@SequenceGenerator、@GeneratedValue、@Column、@Embedded、@EmbeddedId、@Lob、@Version、@Basic、@Transient

3、Hibernate屬性級別注解之@Id注解

設置主鍵

Ps1:對于復合主鍵,實體類必須實現(xiàn)serializable接口(聲明式接口,不需要實現(xiàn)任何方法)。

Ps2:將 String類型 的屬性設置成主鍵是一定要指定該屬性的長度,可以用 Column( length=8) 注解來指定,不然 MySQL 會默認讓其長度為255,而 MySQL 主鍵的長度不允許太長。(即使,Ps1成功實現(xiàn),但是如果Ps2不通過,即使Junit變?yōu)榫G條,表也創(chuàng)建不成功)

4、Hibernate屬性級別注解之@GeneratedValue注解

主鍵生成策略

第四點 例子

String類型做主鍵,@GenericGenerator()

例子

添加一名學生信息

5、Hibernate屬性級別注解之@Column注解

6、Hibernate屬性級別注解之@Embedded注解

7、Hibernate屬性級別注解之@EmbeddedId注解

復合主鍵

測試類

8、Hibernate屬性級別注解之@Transient注解

相當于 設置保密的字段,不映射成表的字段

Hibernate關聯(lián)映射注解

1、Hibernate關聯(lián)映射注解之實體之間的關系

2、Hibernate關聯(lián)映射注解之 一對一 單向 外鍵關聯(lián)

pid相當于,被控類的主鍵

配置類

測試類

3、Hibernate關聯(lián)映射注解之 一對一雙向 外鍵關聯(lián)

測試類跟上面一樣

4、Hibernate關聯(lián)映射注解之一對一單向外鍵聯(lián)合主鍵

具體看:7、Hibernate屬性級別注解之@EmbeddedId注解

5、Hibernate關聯(lián)映射注解之多對一單向外鍵關聯(lián)

這里的JoinColumn 參數(shù)的解釋寫反了

測試類

6、Hibernate關聯(lián)映射注解之一對多單向外鍵關聯(lián)

注意跟第5點 進行對比

7、Hibernate關聯(lián)映射注解之一對多雙向外鍵關聯(lián)

其他的保持不變,測試類一樣

8、Hibernate關聯(lián)映射注解之 多對多 單向外鍵關聯(lián)

測試類

9、Hibernate關聯(lián)映射注解之 多對多雙向 外鍵關聯(lián)

作者:屌事不扣幣

鏈接:http://m.itdecent.cn/p/f1b91943c88c

來源:簡書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容