Hibernate SessionFactory vs EntityManagerFactory

Я переместился с этим вопросом, а разница между птичьим глазом между Hibernate SessionFactory и JPA EntityManagerFactory заключается в том, что JPA является стандартным. Вы можете использовать его, не опасаясь оснований ORM. но он вызывает базовый sessionFactory под капотом. (Исправьте меня, если я ошибаюсь)

Но если кто-то знает, что он должен просто придерживаться спящего режима как ORM в будущем, то что он должен выбрать из этих двух Фабрики и почему?

Во-вторых, каковы другие различия между этими двумя аспектами производительности, характеристик, стабильности и т.д.

Ответ 1

Вы должны предпочесть стандартный API JPA через собственный Hibernate по нескольким причинам:

  • Это заставляет вас узнать что-то, что вы можете использовать в других проектах, опираясь на другую реализацию.
  • API JPA чище, чем Hibernate: он не имеет ранних ошибок, которые API-интерфейс Hibernate имеет
  • Усилия и эволюции теперь нацелены на API JPA. Например, стандартный API критериев JPA2 более совершенен, чем старый, собственный API-интерфейс Hibernate Criteria (но более сложный в использовании, IMHO).
  • Если вы хотите, вы всегда можете получить сеанс Hibernate из JPA EntityManager. Не наоборот

В любом случае, большая часть усилий заключается в сопоставлении самих объектов, и это делается с использованием стандартных аннотаций JPA, даже при использовании Session API.