一尘不染

Hibernate SessionFactory与EntityManagerFactory

hibernate

我一直在解决这个问题,而 Hibernate SessionFactoryJPA EntityManagerFactory的
区别在于JPA是标准的。您可以使用它而不必担心底层的ORM。但它在后台调用了底层的sessionFactory(如果我错了,请纠正我)

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

其次,两者在性能,功能,稳定性等方面还有哪些其他区别?


阅读 335

收藏
2020-06-20

共1个答案

一尘不染

由于以下几个原因,您应该首选标准的JPA API而不是专有的Hibernate API:

  1. 它使您了解可以依赖其他实现在其他项目中重用的内容
  2. JPA API比Hibernate API更干净:它没有Hibernate API所具有的早期错误
  3. 现在,工作和发展针对JPA API。例如,标准JPA2标准API比旧的专有Hibernate Criteria API更完整(但使用起来更复杂,恕我直言)
  4. 如果需要,您始终可以从JPA EntityManager获取hibernate会话。反之亦然

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

2020-06-20