Dúvida: Qual a diferença entre usar o SessionFactory ou o EntityManager do Hibernate?
Hibernate
3 Respostas
Vamos esclarecer a nomenclatura:
SessionFactory é a fábrica de sessões (Session) do Hibernte
EntityManagerFactory é a fabrica de sessões (EntityManager) do JPA, ou Java Persistence API
O Hibernate é um framework de persistência que existe há muitos anos, e tem uma grande aceitação no mercado, tornando-se um pdrão “de facto”.
O JPA foi lançado em 2005 e é uma especificação padronizadora para frameworks de persistência.
Os desenvolvedores do Hibernate lançaram um projeto chamado Hibernate EntityManager, que é uma camada de compatibilização entre o framework Hibernate tradicional (hoje chamado de Hibernate Core) e o JPA que é um padrão oficial.
Quando vc usa a Session do Hibernate vc tem maiores poderes, pois o Hibernate supera o JPA em termos de funcionalidades.
Quando vc usa o EntityManager do JPA vc está tornando sua aplicação portável para outros ambientes onde a persistência não é resolvida com o Hibernate.
Se vc ficou na dúvida em qual usar, utilize o JPA, pois é uma padrão oficial.
E vá estudando o Hibernate, pois muitos recursos disponíveis nesse framework vão acabar aparecendo nas futuras versões do JPA.
Obrigado!!