Hibernate SessionFactory vs EntityManagerFactory

2022-09-03 08:55:26

我一直在思考这个问题,Hibernate SessionFactoryJPA EntityManagerFactory之间的鸟瞰区别是JPA是标准的。您可以使用它而不必担心底层ORM。然而,它将底层会话工厂称为底层。(如果我错了,请纠正我)

但是,如果有人知道他将来必须坚持冬眠作为ORM,那么他应该从这两个工厂中选择什么,为什么?

其次,这两者在性能,功能,稳定性等方面还存在哪些其他差异?


答案 1

您应该更喜欢标准的JPA API而不是专有的Hibernate API,原因如下:

  1. 它让你学到一些可以在更多其他项目中重用的东西,依赖于不同的实现。
  2. JPA API比Hibernate API更干净:它没有Hibernate API的早期错误。
  3. 这些努力和演变现在都针对 JPA API。例如,标准 JPA2 标准 API 比旧的专有休眠标准 API 更完整(但使用起来更复杂,恕我直言)
  4. 如果需要,您始终可以从 JPA 实体管理器获取休眠会话。反之亦然

无论如何,大部分工作都在映射实体本身,这是使用标准的JPA注释完成的,即使使用会话API也是如此。


答案 2

推荐