Ola pessoal sou novato em frameworks estou estudando ainda e no dia a dia aprendendo suas funcionalidades, tive um contato com JPA e agora estou estudando o uso do HBM para fazer os mapeamento dos POJOS.
A minha dúvida é existe uma regra para uso de um ou uso de outro ou é opção? Qualquer aplicação posso optar por HBM? ele é tao bom quanto o JPA ou vice e versa?
Se alguem puder citar alguns prós e contras para uma melhor fixação eu fico agradecido!
Veja bem, JPA é uma especificação. Ao usar JPA você precisa usar uma de suas implementações, entre elas o Hibernate. Pessoalmente, eu prefiro usar o JPA puro, abstraindo completamente a implementação. Dessa maneira, eu não preciso distribuir o framework junto com a minha aplicação, caso o deploy seja feito em um servidor full-JEE como o JBoss ou Glassfish.
Hebert_Coelho
rmendes08:
Veja bem, JPA é uma especificação. Ao usar JPA você precisa usar uma de suas implementações, entre elas o Hibernate. Pessoalmente, eu prefiro usar o JPA puro, abstraindo completamente a implementação. Dessa maneira, eu não preciso distribuir o framework junto com a minha aplicação, caso o deploy seja feito em um servidor full-JEE como o JBoss ou Glassfish.
+1
E também fica muito simples migrar de implementação. Já vi sistema mudando do hibernate -> eclipselink sem problemas e sem precisar alterar código. [=
rmendes08
jakefrog:
rmendes08:
Veja bem, JPA é uma especificação. Ao usar JPA você precisa usar uma de suas implementações, entre elas o Hibernate. Pessoalmente, eu prefiro usar o JPA puro, abstraindo completamente a implementação. Dessa maneira, eu não preciso distribuir o framework junto com a minha aplicação, caso o deploy seja feito em um servidor full-JEE como o JBoss ou Glassfish.
+1
E também fica muito simples migrar de implementação. Já vi sistema mudando do hibernate -> eclipselink sem problemas e sem precisar alterar código. [=
Exatamente.
A minha preferência ao trabalhar com Web é usar o que for possível da especificação JEE. Hoje em dia nada é mais fácil do que levantar um projeto Web com JSF + CDI + JPA.
drsmachado
rmendes08:
jakefrog:
rmendes08:
Veja bem, JPA é uma especificação. Ao usar JPA você precisa usar uma de suas implementações, entre elas o Hibernate. Pessoalmente, eu prefiro usar o JPA puro, abstraindo completamente a implementação. Dessa maneira, eu não preciso distribuir o framework junto com a minha aplicação, caso o deploy seja feito em um servidor full-JEE como o JBoss ou Glassfish.
+1
E também fica muito simples migrar de implementação. Já vi sistema mudando do hibernate -> eclipselink sem problemas e sem precisar alterar código. [=
Exatamente.
A minha preferência ao trabalhar com Web é usar o que for possível da especificação JEE. Hoje em dia nada é mais fácil do que levantar um projeto Web com JSF + CDI + JPA.
Sem contar que a curva de aprendizado disto tudo é bem menor que aprender rich/primefaces + Spring Framework + Hibernate