2012-06-01 157 views
3

我是一名初級程序員,被要求開發一個應該使用Java持久性API(JPA)的應用程序。最受歡迎的JPA實現

這是最流行的JPA實現(休眠,Toplink的,的EclipseLink)

我可以使用上述任何與Apache Tomcat或每一個實現綁定到特定的服務器應用程序?

是否有任何有關此主題的優秀入門書籍或教程?

+1

很明顯,還有其他各種JPA實現,都有各自的優點和缺點。閱讀關於stackoverflow的FAQ意味着像這樣的主觀問題不適合這個網站。建議你自己做一些研究,因爲所有的實現都有很好的文檔恕我直言。 TopLink Essentials是JPA1的RI,EclipseLink是JPA2的RI。但是,然後RI意味着簡單的「概念證明」,證明規範是可實現的 –

回答

6

這取決於。這兩種解決方案都可以工作,但每個解決方案都做出了自己的設計決定,並且取決於您,這些解決方案可能會對您有利或反對。

所以我建議使用這兩種技術來實現一個簡單但完整的原型(花費一個星期的時間)來了解哪一個更適合你。完整的手段:實現你知道你需要的每個用例,尤其是複雜的用例。

作爲指導原則,我發現,Hibernate有更多的功能,但Eclipse的鏈接提供了更好的錯誤信息,你 - >我花更少的時間固定帶鏈接的問題。另一方面,Hibernate內置了更多功能,所以我花費更少的時間將需求轉化爲代碼 - 當我能夠找到該功能時,瞭解它的工作原理,並且我沒有遇到一些奇怪的錯誤消息那只是讓我難倒了,並且在圈子裏跑了幾天。

Eclipse Link曾經是一個商業產品,所以文檔更好。

3

這是一個非常主觀的問題。
我認爲Hibernate仍然比較流行,但最受歡迎的東西不一定總是最適合特定任務的東西。個人而言,我會在大多數項目中使用EclipseLink(它是TopLink的繼任者) - 在Eclipse基金會的推動下,擁有良好支持和正式版本的JPA的參考實現並不是沒有用的,文檔。

您可以同時使用的EclipseLink,並與每一個應用程序服務器休眠(Tomcat是完美的罰款),甚至是單機(沒有應用服務器的話) - JPA標準保證。

如果不使用特定於實現的事情(和堅持JPA),你甚至可以使用Hibernate(反之亦然)交換的EclipseLink - 雖然我只會做的很好的理由。

+0

是Eclipse Link綁定到特定的服務器? – obelix

+0

什麼是更多的hibernate似乎是我提到的三個實現中最流行的......爲什麼Toplink和EclipseLink不太流行,因爲它們是參考實現? – obelix

+0

看看我編輯的答案。恕我直言,Toplink從未參考實施。 EL是不太流行的,因爲hibernate是第一個 - 甚至在JPA標準被指定之前。但是當我看到這些趨勢時,我粗略猜測EclipseLink可能會在幾年內超過Hibernate。 – MRalwasser

6

如果你選擇的Toplink,你會被解僱,花你的天橋下喝着廉價的伏特加酒,不知道你的職業生涯可能已經等。

我聽到什麼,但良好的EclipseLink,但我覺得Hibernate有更多的行業使用,並有一些非JPA功能。

你應該能夠因爲他們是一個Java API的實現,而不是依靠任何特別的容器來使用他們所有的Tomcat。