2011-09-15 43 views

回答

4

我發現這個提供了一個很好的解釋。 http://elope.wordpress.com/2007/09/06/difference-between-jpa-and-hibernate/

從上面的博客: 所以,如果我需要把簡潔的話:

一)JPA是持久性API,你的代碼應該使用。 b)JPA Api會將調用傳遞給實際的持久性提供者(例如:Hibernate/TopLink)來完成實際的工作。

c)如果你正在從性能角度看,它將依賴於實際的生存提供者(Hibernate/TopLink),而不是JPA,因爲它只是一個包裝層。 d)如果您從代碼依賴關係角度來看,JPA更有意義,因爲您的代碼依賴於標準Java Api。 e)如果您使用過Hibernate,那麼您會發現JPA中缺少某些功能,如條件查詢等。這並不意味着您不能在您的應用程序中編寫條件查詢,您需要從中獲取Session對象JPA實體經理,現在你和hibernate項目一樣好。

但現在你的代碼是依賴於特定的IMPL(休眠),前進就可以看到JPA獲取添加更多的東西(2.0)

F)如果你使用JPA:我的看法是你應該,API是乾淨,雖然不是你需要的是他們,但是向前邁進了一大步。

1

我不知道你的意思是什麼「屏幕」,但總的來說,你可以直接使用Hibernate(Hibernate API)或者作爲一個提供商。由於JPA是標準的API,因此可以針對此API進行編碼並在實現之間切換(Hibernate,EclipseLink,OpenJPA等)。在使用Hibernate API時,您可以使用這個功能,但是您可以使用JPA未標準化的功能。

相關問題