使用JPA2.0进行Hibernate实现

时间:2014-11-21 01:48:18

标签: hibernate java-ee jpa-2.0 crud

我对JPA有疑问。我们正在使用Hibernate for JPA 2.0,每当我们想要执行一些CRUD操作时,我们都会为JPA而不是Hibernate导入API。但是这些方法只是JPA中的接口,因为JPA只是一个规范,而不是实现。所以如何当我们有entityManager.createQuery()类型的调用时,CRUD操作起作用,这些调用只是抽象方法而不是具体方法。有点困惑......回应赞赏。

2 个答案:

答案 0 :(得分:0)

EntityManager是一个接口,每个JPA提供程序都为它提供了一个实现。 Hibernate EntityManager实现只是将所有调用委托给当前正在运行的Session。

CRUD操作由EntityManager方法支持:

  • 持续
  • 合并
  • 除去
  • 的createQuery

答案 1 :(得分:0)

重要的是要了解JPA和Hibernate之间的区别,以及SessionFactory和EntityManager之间的区别(两者都在框架中称为" JPA / Hibernate")。长话短说.. entityManager是标准的实现,标准我的意思是JPA,在sessionFactory中有很多来自Hibernate的功能(并且它是没有标准)。

推荐的是EntityManager,因为它是标准。有关详细信息http://www.javabeat.net/jpa-entitymanager-vs-hibernate-sessionfactory/