2014-04-20 75 views
-1

從站點複製粘貼:b/w差異規格和實現

使用JPA保留java類。 第一步是將此java類限定爲實體。 這是通過用@Entity註釋標記類來完成的。 用@Entity標註標記一個類會告訴持久化引擎從這個類創建的對象可以使用JPA的支持來使它們持久化。

[持久性引擎或持久性提供者只不過是Java Persistence API的實現。 Java持久性API只是Sun的一個規範,而不是一個實現,供應商可以根據JPA規範自由地實現自己的持久框架。因此,JPA提供了可插拔接口,在運行時可以輕鬆地將更多的實現與它關聯起來。]

有人能向我解釋關於技術和外行的規範和實現的最後一段語言。此外,它意味着什麼... JPA提供了一個可插拔的接口,其中越來越多的實現可以在運行時與其輕鬆關聯...

回答

1

JPA是一個標準,它定義了API,註釋,預期行爲。 Hibernate或Eclipselink是標準(庫/罐)的實現。

它們實際上提供了在標準中定義的功能,標準本身只是一個批准委員會批准爲JSR - Java請求規範的書面規範。

爲了使它更具體:

  • 這是JPA的標準 - PDF

  • ,這是進入休眠模式,標準的實現 - 庫提供here

0

規範意味着它提供了一個較低級別的框架,如使用它的@Entity a將一個類視爲一個表nnotation。但是實際的CRUD操作功能在接口方面是暴露的,因此任何第三方都可以使用它自己的方法來保存數據或執行CRUD。

「供應商可以自由地實現自己的持久框架」,這裏的供應商就像hibernate,spring-data一樣,將另一個框架放在JPA的頂部,以提供自己的CRUD。

JPA只給定一個非常低層次的抽象形式的預定義框架,有些事情是通過它預定義的像@Entity,而上層操作是通過可插入接口打開的,以便第三方處理查詢執行。

因爲當你使用冬眠的MongoDB和嗎啡MongoDB的,那麼你會發現映射的詳細說明是同在這兩者是常見的,它的JPA而CRUD語法和集成因爲Hibernate各種和嗎啡是JPA

供應商