一、JPA註解的介紹 Hibernate Annotation :是使用註解代替XML映射對象關係的新方式JPA: Java Persistence API 是EJB3.0規範中的一部分,專門描述如何處理持久化的規範 常用方式: • 使用JPA的標準註解來做對象關係映射 • 使用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