EntityManager e SessionFactory

Boa noite Galera!
Sempre tive duvidas sobre quando usar EntityManager e SessionFactory. Eu entendo mais ou menos a diferença entre eles, já vi tópicos aqui no fórum sobre esse assunto, já pesquisei a respeito, mas ainda não estou satisfeito.

Vejo mutos cursos online e leio livros. Em alguns lugares usam Entitymanager e outros SessionFactory.
Por isso fico com duvida.
O hibernate continua dando suporte para sessionfactory? continua tendo atualizações?pois andei pesquisando e parece que a implementação de Criteria dele está depreciada e dizem para usar a do entitymanager.

Qual vocês me aconselham estudar? tem muita diferença de sintaxe entre elas?

Obrigado pessoal.

EntityManager é a especificação do JPA, poderá usá-lo da mesma forma com qualquer outro ORM que siga a especificação.
Session é uma implamentação particular do Hibernate, inclusive, já recomendado por eles utilizar EntityManager.

Então vou partir pro entity manager.