Hibernate 註解
一、JPA註解的介紹
Hibernate Annotation :是使用註解代替XML映射對象關系的新方式
JPA: Java Persistence API 是EJB3.0規範中的一部分,專門描述如何處理持久化的規範
常用方式:
? 使用JPA的標準註解來做對象關系映射
? 使用Hibernate來完成持久化操作。
JPA的註解定義放置在javax.persistence包中
常用的註解有:
? @Entity
? @Table
? @Id
? @Temporal
? @Basic
? Column
? JPA註解中樂觀鎖@Version
a
編寫實體測試類:
二、基於JPA註解的對象關系映射
JPA註解中關聯映射的應用:
1、一對多(@OneToMany)
2、一對一(@OneToOne)
3、多對多(@ManyToMany)
一對多:
類別Category和產品Product是一對多的關系。產品和類別則是多對一的關系。
先在一端既Category類下配置 一對多的註解,
mappedBy表示維護關系的反轉,相當於property_ref,維護關系的反轉,交給另一端來維護關系。
再來看一下多端:
//這裏配置關系,並且確定關系維護端和被維護端。mappBy表示關系被維護端,只有關系端有權去更新外鍵。這裏還有註意OneToMany默認的加載方式是賴加載。當看到設置關系中最後一個單詞是Many,那麽該加載默認為懶加載
這裏設置JoinColum設置了外鍵的名字,在這裏,Product表示是關系 維護端,Category表示關系被維護端。
一對一:
2、基於主鍵的一對一映射:
不會經常用,這個意思是說,兩個表中使用相同的主鍵,使用Hibernate自定義主鍵生成策略,由@GenericGenerator實現。引用myfor.
基於外鍵的一對一則相對容易些
3、多對多:
我們以Student和Course類為例,學生和課程是多對多的關系
JoinTable,我們創建了一個中間表,作為兩個表之間的關聯。配置好Student端後,Course端配置 就很簡單了,直接使用@ManyToMany就可以了。
映射命名查詢
? NameQueries
? NameQuery
Hibernate 註解