2009-12-10 130 views
12

我一直在使用Hibernate ORM,它是JPA規範的實現來管理關係數據。我也聽說過應該這樣做的JDO規範(管理關係數據)。JPA和JDO規範有什麼區別?

這兩者之間的根本區別是什麼?任何代碼樣本最受讚賞。 JDO如何與其他Java技術棧集成在一起EJB3

+0

相關:http://stackoverflow.com/questions/530215/hibernate-vs-jpa-vs-jdo-pros-and-cons-of-each – 2009-12-10 05:56:42

+0

@matt - 從你的問題我沒有看到任何答案這給了差異。您詢問了優點和缺點,在瞭解了兩種規格之間的差異之後,我打算評估這些優點和缺點。 – n002213f 2009-12-10 06:10:53

回答

11

嘗試這些 JDO-JPA FAQJDO or JPAJDO .v. JPAJDO .v. JPA - APIJDO .v. JPA - ORM

JDO早已存在JPA之前,並具有更廣的範圍。 JPA僅用於RDBMS,並且(即使在JPA2中)也不提供JDO提供的全面支持。這個論壇中的鏈接和其他帖子應該提供充足的閱讀材料來解釋論證的各個方面。

--Andy(DataNucleus

+0

關於如何將JDO與其他堆棧集成的指針EJB3 – n002213f 2009-12-10 06:51:47

+0

JDO實現(例如DataNucleus)帶有JCA適配器,所以它的微不足道的 – DataNucleus 2009-12-10 07:41:44

+0

偉大的答案,但僅供參考,前兩個鏈接已經死了。 – 2012-03-18 13:58:00

2

JPA被定義爲統一和替換EJB CMP和JDO的前現有的Java持久性規範。 JPA作爲EJB 3.0的一部分發布,是Oracle WebLogic,IBM Websphere,Redhat JBoss和任何其他Java EE提供商支持的Java EE規範的一部分。有許多支持JPA(TopLink/EclipseLink,Hibernate,OpenJPA,DataNucleus)的領先產品,但很少有支持JDO或CMP的產品。所以,JPA似乎在替換兩者方面做得很好。

至於JPA只是RDBMS,那完全是假的(甚至DataNucleus是我知道的唯一剩餘的JDO產品,它支持JPA在它支持JDO的任何非關係平臺上)。還有很多其他產品在非關係平臺上支持JPA,例如EclipseLink的NoSQL和EIS支持(MongoDB,Oracle NoSQL,XML,傳統數據庫),Kundera,DataNucleus,甚至支持JPA的ObjectDB等對象數據庫作爲他們的Java API。

+2

GAE似乎是一個關鍵的JDO支持平臺。我不知道DataNucleus有多獨特,但我在這裏看到過這些問題...... – 2012-03-19 15:58:17

+1

JPA專家組有多少非RDBMS數據存儲供應商的代表?這將表示它是如何適合非RDBMS數據存儲「設計」的。 – user383680 2012-03-19 16:25:56

+1

這些其他數據存儲區不使用JDBC,但JPA以此爲導向,沒有真正的方法通過標準的JPA方式提供對數據存儲區的訪問; DataNucleus似乎通過jdbc.url破解它。因此,不,我不明白「JPA」如何迎合其他數據存儲的要求。 DataNucleus是否應該爲他們提供JPA也值得商榷。 – 2012-03-19 17:05:25