2011-10-26 146 views
0

您好我正在讀春天在行動3本書,我碰到這個段落在那裏談論JPA交易來了,彈簧3事務支持

需要注意的是JpaDialect的實現必須支持 混合JPA/JDBC是非常重要的訪問這個工作。所有Spring的 特定於供應商的實現JpaDialect
(EclipseLinkJpaDialect,HibernateJpaDialect,OpenJpaDialect和TopLinkJpaDialect)支持混合使用JPA和JDBC。但是,DefaultJpaDialect不。

我的問題是爲什麼Hibernate或iBATIS會創建一個jpaDialect,我們可以直接使用Hibernate而不是JPA。我對此很陌生,並試圖瞭解所有這些技術之間的聯繫,任何幫助都非常感謝。

感謝, SS

回答

1

因爲JPA是規範,而不是實現,有的人喜歡代碼的規範。這就像編程接口,而不是實現。

(我從來沒有見過一個項目變更JPA實現,但我敢肯定它會發生。)

1

Hibernate是一個ORM(對象關係映射)和JPA是Java持久性API。

簡單描述:

-HIBERNATE角色是你的數據庫表映射到Java對象。

-JPA角色是處理或提供方法來管理該給定數據庫中的事務/持久性。

Hibernate provides an open source object-relational mapping framework for Java. Versions 3.2 and later provide an implementation for the Java Persistence API. 

所以,如果你使用Hibernate 3.2+,它已經實現了JPA規範,所以你並不需要一個第三方JPA提供商。