1. 程式人生 > >Hibernate 註解

Hibernate 註解

table ble 策略 basic ref png 主鍵 ava XML

一、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 註解