JPA簡介

JPA的學習

JPA是Java Persistence API的簡稱,中文名Java持久層API。是Java EE5.0平臺中Sun爲了統一持久層ORM框架而制定的一套標準,注意是一套標準,而不是具體實現,不可能單獨存在,須要有其實現產品。Sun挺擅長制定標準的,例如JDBC就是爲了統一鏈接數據庫而制定的標準,而咱們使用的數據庫驅動就是其實現產品。JPA的實現產品有HIbernate,TopLink,OpenJPA等等。值得說一下的是Hibernate的做者直接參與了JPA的制定,因此JPA中的一些東西能夠與Hibernate相對比。html

JPA特色:git

  • JPA可使用xml和註解映射源數據,JPA推薦使用註解來開發。
  • 它有JPQL語言也是面向對象的查詢語言,和hql比較相似。

 

JPA對象關係映射

 

 

映射方向

映射方向可分爲兩個部分: -github

  • 單向關係 - 在這種關係中,只有一個實體能夠將屬性引用到另外一個實體。它僅包含一個側面,因爲指定如何更新能夠在數據庫中進行。
  • 雙向關係 - 這種關係包含兩邊 - 既包含一個側面,也包含另外一個側面。 因此這裏每一個實體都有一個關係字段或將該屬性引用到其餘實體。

映射類型

如下是各類ORM映射類型 -數據庫

  • 一對一 - 此關聯由@OneToOne註釋表示。在這裏,每一個實體的實例與另外一個實體的單個實例相關。
  • 一對多 - 此關聯由@OneToMany註釋表示。 在這種關係中,一個實體的實例能夠與另外一個實體的多個實例相關聯。
  • 多對一 - 此映射由@ManyToOne註釋定義。 在這種關係中,一個實體的多個實例能夠與另外一個實體的單個實例相關聯。
  • 多對多 - 此關聯由@ManyToMany註釋表示。 在這種關係中,一個實體的多個實例可能與另外一個實體的多個實例有關。 在這個映射中,任何一方均可以成爲全部者方

 

實體屬性

這些是對象必須具備的實體的屬性 -框架

  • 持久性 - 若是一個對象存儲在數據庫中而且能夠隨時訪問,則該對象稱爲持久性。
  • 持久性標識 - 在Java中,每一個實體都是惟一的,並表示爲對象標識。 一樣,當對象標識存儲在數據庫中時,它被表示爲持久性標識。 該對象標識等同於數據庫中的主鍵。
  • 事務性 - 實體能夠執行各類操做,例如:建立,刪除,更新。 每一個操做都會對數據庫進行一些更改。它確保不管數據庫中的任何更改是原子級成功仍是失敗。
  • 粒度 - 實體不該該是基元,原始包裝或具備單維狀態的內置對象。

 

實體元數據post

每一個實體都與一些表明它的信息的元數據相關聯。 這個元數據不是數據庫,而是存在於類內部或外部。 此元數據能夠採用如下形式 -學習

  • 註解 - 在Java中,註解是表示元數據的標籤形式。 這個元數據保存在類中。
  • XML - 在此形式中,元數據在XML文件的類外部保存。
相關文章
相關標籤/搜索