類級別注解
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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。