2014-05-03 32 views
6

我一直在四處移動這個問題和的SessionFactoryJPA EntityManagerFactory的之間的鳥眼不同的是,JPA是標準配置。您可以使用它,而不用擔心潛在的ORM。但它調用底層的sessionFactory底層(糾正我,如果我錯了)的SessionFactory EntityManagerFactory的VS

但是,如果有人知道他只是堅持冬眠作爲一個ORM在未來,那麼他應該從這兩個選擇工廠,爲什麼?其次,這兩者在性能,功能,穩定性等方面還有什麼不同?

+0

大概這個downvoter投票是基於這個問題在此之前已經被問了很多次的事實,而簡單的搜索會告訴你你需要知道什麼(它是否「使用膽量」來使用搜索?)。但是,那麼你不得不問他們爲什麼...... –

+2

所以如果我告訴你,我做了所有的搜索,我想知道一些特定的方面,這些方面在以前的問題中沒有問過,比如性能和兩個特性。如果你認爲多次以完全相同的方式詢問同一問題,請標記並告訴我們重複。但是,投票表決意味着這個問題不值得在SO上發佈,我相信。 我知道這個價值,並在網上搜索了很多。 – vicky

回答

30

你應該更喜歡私有標準JPA API Hibernate的一個,有以下幾個原因:

  1. 它讓你學到東西,你可以在更多的其他項目中重用,依靠不同的實現
  2. 的JPA API比Hibernate更乾淨:它沒有Hibernate API早期的錯誤
  3. 這些努力和發展現在都針對JPA API。例如,標準JPA2標準API比舊的專有Hibernate Criteria API更完整(但使用起來更復雜,恕我直言)
  4. 如果需要,您可以始終從JPA EntityManager獲取Hibernate會話。反之亦然

無論如何,大部分工作都是在映射實體本身,並且使用標準的JPA批註完成,即使在使用Session API時也是如此。

+0

請原諒我對JPA大哥的瞭解。當從JPA工廠獲取會話而不是直接從Hibernate工廠獲取會話時,性能或效率效果如何? – vicky

+1

不會有任何明顯的差異。無論如何,這絕不應該發生。在使用數據庫的應用程序中,大部分時間需要執行查詢。 –

+0

感謝您寶貴的時間和教我的東西:-) – vicky

相關問題