Hibernate SessionFactory vs EntityManagerFactory
我一直在讨论这个问题, Hibernate SessionFactory和JPA EntityManagerFactory之间的鸟眼差异是JPA是标准的。 您可以使用它而不必担心底层ORM。 然而它会在底层调用底层的SessionFactory。(如果我错了,请纠正我)
但如果有人知道他将来只是坚持使用hibernate作为ORM,那么他应该从这两个工厂中选择什么呢?为什么呢?
其次,这两者在性能,function,稳定性等方面还存在哪些差异?
您应该更喜欢标准的JPA API,而不是专有的Hibernate API,原因如下:
- 它让您学习一些可以在更多其他项目中重用的东西,依赖于不同的实现
- JPA API比Hibernate更干净:它没有Hibernate API的早期错误
- 现在,努力和演变都针对JPA API。 例如,标准JPA2标准API比旧的,专有的Hibernate Criteria API更完整(但使用起来更复杂,恕我直言)
- 如果需要,您始终可以从JPA EntityManager获取Hibernate会话。 反之亦然
无论如何,大部分工作都是映射实体本身,这是使用标准JPA注释完成的,即使使用Session API也是如此。
- Hibernate错误:org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联
- 使用Hibernate映射数组
- 如何从不同的位置加载hibernate.cfg.xml
- 如何解决“org.hibernate.QueryException:并未设置所有命名参数”错误?
- Hibernate单向父/子关系 – delete()对子表而不是删除执行更新
- 如何在运行时获取DiscriminatorValue
- 正在加载javassist-ed Hibernate实体
- Hibernate:永远不会调用MyInterceptor#onFlushDirty
- Hibernate HQL只获取表值?