2014-11-21 109 views
0

我有一個關於JPA的問題。我們使用Hibernate作爲JPA 2.0,並且每當我們想要執行一些CRUD操作時,我們都會爲JPA導入API,但不會導入Hibernate。但這些方法只是JPA中的接口,因爲JPA只是一個規範而不是實現。那麼當我們擁有entityManager.createQuery()類型的調用時,CRUD操作就起作用了,這些調用只是抽象方法而不是具體方法。有點困惑...迴應讚賞。使用JPA2.0實現休眠

+0

我認爲這兩個答案都解決您的問題,所以請選擇一個。 – 2014-12-06 14:07:31

回答

0

EntityManager是一個接口,每個JPA提供者都爲它提供了一個實現。 Hibernate EntityManager實現簡單地將所有調用委託給當前正在運行的Session。

的CRUD操作由EntityManager的方法支持:

  • 堅持
  • 合併
  • 刪除
  • 的createQuery
0

重要的是要了解什麼是JPA的區別和Hibernate,但也有區別SessionFactory和EntityManager(都在framew中可用ork稱爲「JPA/Hibernate」)。長話短說.. entityManager是標準的執行,通過標準我的意思是JPA,在sessionFactory中有很多來自Hibernate的功能(它是沒有標準)。

推薦的一個是EntityManager,因爲它是一個標準。欲瞭解更多信息http://www.javabeat.net/jpa-entitymanager-vs-hibernate-sessionfactory/