Hibernate—— 注解

類級別注解

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

2、JPA與Hibernate的關系

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

.JPA 是標準接口,Hibernate是實現,但是其功能是JPA的超集。

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

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

3、Hibernate注解的分類

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

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

類級別的注解.@Table

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

類級別的注解.Schema 和 catalog

4、

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

hibernate 配置文件

實體類1

實體類2

測試類

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

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

從實現的角度來看,各種數據庫系統對Catalog和Schema的支持和實現方式千差萬別的。

其他的跟 5 一樣

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

@Embeddable

屬性級別注解

1、添加方式

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

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

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

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

設置主鍵

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

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

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

主鍵生成策略

第四點 例子

String類型做主鍵,@GenericGenerator()

例子

添加一名學生信息

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

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

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

復合主鍵

測試類

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

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

Hibernate關聯映射注解

1、Hibernate關聯映射注解之實體之間的關系

2、Hibernate關聯映射注解之 一對一 單向 外鍵關聯

pid相當于,被控類的主鍵

配置類

測試類

3、Hibernate關聯映射注解之 一對一雙向 外鍵關聯

測試類跟上面一樣

4、Hibernate關聯映射注解之一對一單向外鍵聯合主鍵

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

5、Hibernate關聯映射注解之多對一單向外鍵關聯

這里的JoinColumn 參數的解釋寫反了

測試類

6、Hibernate關聯映射注解之一對多單向外鍵關聯

注意跟第5點 進行對比

7、Hibernate關聯映射注解之一對多雙向外鍵關聯

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

8、Hibernate關聯映射注解之 多對多 單向外鍵關聯

測試類

9、Hibernate關聯映射注解之 多對多雙向 外鍵關聯

作者:屌事不扣幣

鏈接:http://www.lxweimin.com/p/f1b91943c88c

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容