2014-11-21 108 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/