我对JPA有疑问。我们正在使用Hibernate for JPA 2.0,每当我们想要执行一些CRUD操作时,我们都会为JPA而不是Hibernate导入API。但是这些方法只是JPA中的接口,因为JPA只是一个规范,而不是实现。所以如何当我们有entityManager.createQuery()类型的调用时,CRUD操作起作用,这些调用只是抽象方法而不是具体方法。有点困惑......回应赞赏。
答案 0 :(得分:0)
EntityManager是一个接口,每个JPA提供程序都为它提供了一个实现。 Hibernate EntityManager实现只是将所有调用委托给当前正在运行的Session。
CRUD操作由EntityManager方法支持:
答案 1 :(得分:0)
重要的是要了解JPA和Hibernate之间的区别,以及SessionFactory和EntityManager之间的区别(两者都在框架中称为" JPA / Hibernate")。长话短说.. entityManager是标准的实现,标准我的意思是JPA,在sessionFactory中有很多来自Hibernate的功能(并且它是没有标准)。
推荐的是EntityManager,因为它是标准。有关详细信息http://www.javabeat.net/jpa-entitymanager-vs-hibernate-sessionfactory/