Framework de persistência

5 respostas
L

Olá pessoal!

Sou usuário do Eclipse e estou começando agora a trabalhar com banco de dados, por isso gostaria de saber duas coisas:

1- Como gerar automaticamente no Eclipse as NamedQueries?

2- Qual a real diferença entre Hibernate e Eclipselink?

[Gustavo]

5 Respostas

remixlara

No eclipse to por fora de fazer isso man,
o netbeans tem uma funcionalidade que a partir de uma conexão com banco de dados vc pode gerar todas as suas classes
anotadas e com namedQueries, como vc ta aprendendo eu não recomendo fazer isso, recomendo fazer manualmente pra aprender as funcionalidades.

cara eu n sei assim a diferença saka? mas eu usei hibernate por muito tempo e ainda recomendo MUITO utilizar JPA
JPA faz com que vc use um framework de pesistencia e depois mude de framework sem precisar mudar nada no seu código…
muito bom isso

Merchan: vai no devmedia eles tem um material muito bom sobre isso, agora é pago lógico… não sei se o material da caelum tem sobre isso.
se tiver recomendo muito…

renanreismartins

tanto hibernate quanto eclipselink sao frameworks de ORM.
a diferença é a api e como eles trabalham.

mas como o amigo acima falou, é recomendavel que utilize JPA. Pois assim não tera alterações no codigo caso resolva trocar de framework.

L

Boa noite pessoal!

Pelo o que entendi é o seguinte:
JPA é a API de persistência os frameworks Hibernate, EclipseLink e outros implementam esta especificação, certo? mas minha dúvida é o seguinte: que vantagem tenho em usar um framework ou usar diretamente o JPA?

Não sei se consegui ser claro!

renanreismartins

+/- …

JPA = especificação, ou seja, todos os frameworks que implementem essa especificação tem que implementar todos os requisitos da especificação.

Não existe um meio de usar só JPA, SEMPRE haverá um framework que o implementa para que vc possa usar, porém, se quiser trocar de framework e eles atenderem a especificação nao precisara alterar seu codigo, pois todos possuem todos os requisitos da especificação

De uma maneira bem simples podemos imaginar que:

A especificação JPA requer que os seus implementadores disponibilizerm o metodo save(Obj o);

então todos os frameworks que implementem a especificação devem ter este metodo. Logo não importa qual framework usar, o codigo vai ser o mesmo.

Agora se vc quer usar o framework direto, como por exemplo o hibernate, vc tem ganhos com algumas funcionalidades que ele pode te oferecer, porem fica amarrado a API do framework, ou seja, a troca de framework pode ser um pouco mais complicada.

Um caso prático é o uso de Criteria do hibernate, com JPA 1.0 vc nao tinha acesso a este recurso, se quisesse usa-lo teria de usar hibernate direto.

//edit
JPA2 ja suporta isto.

//edit
mais sobre o assunto http://wpjr2.wordpress.com/2008/05/02/especificacoes-java-introducao-ao-java-community-process/

caso nao tenha sido claro poste de novo.

abrasssssssssss

Andre_Brito

Pense assim: você não usa a JPA diretamente, você usa uma implementação da JPA (Hibernate, Eclipselink e afins).

A grande vantagem de usar a JPA é desfrutar das facilidade que ela te oferece. Você pode criar as entidades e o acesso ao banco sem necessitar configurar tudo por código e conexões que as vezes podem ficar complexas, a manutenção do banco fica mais fácil e você não precisa usar SQL em tudo (pode usar um insert, find, delete, remove… é um banco de dados em que você pode escrever uns 70% em Java).

Me diga uma coisa: você acha mais fácil fazer um SQL desse jeito

Ou assim:

onde cliente é uma entity que vem já com os dados da tela?

Criado 23 de junho de 2010
Ultima resposta 24 de jun. de 2010
Respostas 5
Participantes 4