Pessoal,
O Hibernate ao se adequar a especificacao Java EE acabou deixando sua gama de produtos um pouco confusa, entao por favor poderiam me esclarecer a respeito dos 3 produtos relacionados a persistencia? Colocarei o que tenho em mente a respeito, me corrijam por favor onde estiver errado.
Hibernate-Core
Como o proprio nome diz, nucleo do hibernate PURO. Eh possivel utilizar apenas ele (que eh independente da JPA) como ORM - sem annotations (ORM via XML para cada classe) nem entitymanager (utilizando o session). Correto?
Hibernate Annotations
Utilizando esse " plus" voce pode mapear suas classes com as anotacoes especificadas na JPA, evitando o XML hell. Nada alem dessa facilidade.
Hibernate Entity Manager
Aqui eh a implementacao do Entity Manager da JPA pelo hibernate.
Em suma: utilizando os 3, posso fazer uma mistureba total e completa (claro que nao se deve, apenas pra saber) utilizando entity manager, sessions, xml, anotacoes… A questao eh pq o hibernate mantem essa bagunca, pq ele ainda mantem a vertente nao-JPA?
Em um projeto JPA com hibernate, anotariamos as classes-entidade com o Annotations, gerenciariamos as mesmas com o entity manager e o Core seria apenas a implementacao dos demais recursos, sem a utilizacao das classes especificas do hibernate. APenas recursos como HQL, Criteria - esses, extras - que poderiam ser utilizados do core explicitamente.
Entao senhores?
Obrigado desde ja!