2010-09-21 160 views
4

我學習了ORM的JPA。現在我被要求使用Hibernate作爲我的提供者。 如果我從Hibernate入手,它會以不同的概念出現。 請說我如何將JPA和hibernate聯繫在一起。 JPA將我的Java代碼減少爲持久化對象的簡單代碼。 現在hibernate對JPA有什麼幫助,它提供了什麼。 任何人都請簡單解釋。我對Hibernate感到困惑嗎?

+1

Hibernate的全面支持JPA所以理論上你切換到休眠時不需要更改JPA設置。你能更具體地說明你的問題嗎? – 2010-09-21 09:45:50

+2

多一點耐心。自從你提出問題以來,甚至還沒有一刻鐘,你已經抱怨了。讓它去幾個小時。吉茲...的 – musiKk 2010-09-21 09:48:01

+0

可能重複[相似性和JPA和休眠之間的區別。(http://stackoverflow.com/questions/1770211/similarity-and-difference-between-jpa-and-hibernate) – 2010-09-21 10:55:50

回答

2

Hibernate不是另一個概念;它只是許多JPA實現中的一個。另一個是EclipseLink。如果你和實現遵守規範,那麼切換實現只是改變persistence.xml中的幾行(例如<provider>標記和實現特定屬性)。至少在理論上...

+0

非常感謝你對不起,以後我會耐心的。 – 2010-09-21 09:59:10

+2

由於快速響應時間很容易被寵壞。 ;) – musiKk 2010-09-21 10:26:01

3

由於Pascal回答here

JPA只是一個API。要使用JPA,您需要實現此API,並且此類實現稱爲持久性提供程序(EcliseLink,休眠,OpenJPA)

2

JPA是持久化對象的API規範。它定義了一個類似SQL的查詢語言,以及用於定義實體和關係的註釋。

Hibernate是JPA的實現,有各種擴展以及遺留API和查詢語言。只要你不使用任何的Hibernate的擴展,並與JPA API堅持,你可以或多或少地把它互換與其他JPA實現,如OpenJPA中,TopLink的等