Sobre Persisencia, é correto afirmar...? (JPA, Api, Hibernate, Jdbc, Framework)

9 respostas
dooda

Olá pessoal, como sempre antes de postar dei uma boa procurada no forum e não achei nada
muito esclarecedor… portanto…

Estou fazendo meu artigo final na especialização java, que é sobre persistencia e me sugem algumas duvidas…
A ideia é esplanar as formas de pesistencia em java para aplicações desktop e DB relacionais, logo

  • Começaria divagando sobre persistencia em si, falaria sobre o jdbc, seu historico e utilização…
  • Falaria sobre JPA, seu intuito, etc etc…
  • E citaria um framework em si como hibernate, por exemplo…

:arrow: Pra finalizar, faria um protótipo com analise de desempenho entre as 3 formas de persistencia num
banco de dados comum… também, comparativo de recursos e uma relação entre custo desenvolvimento x desempenho…

o que acham???
(se eu tivesse lido, um simples artigo assim, e não dezenas como li, quando comecei estudar sobre persistencia em java,
muitas de minhas dúvidas teriam sido esclarecidas, massssss… voltando ao assunto)

Ao utiliza JPA, é preciso um “provedor” que implemente os objetos/classes do javax.persistence.* por exemplo,
como Hibernate Entity Manager, ApacheJPA, TopLink etc?

sendo assim, nao conseguirei implementar uma persistencia pura somente com JPA, e meus comparativos furaram? :shock:

acho que fiquei bem perdidao nesses conceitos… :oops:

Agradeço qualquer ajuda, opiniao e critica…
Obrigado!!!

9 Respostas

georgesq

bom vejamos… JPA é uma abstração para o provider de persistência(hibernate, kodo, toplink), portanto, vc quando estafalando em JPA, esta somente subindo um nível para não escrever direto para o provider.

[s]

renatocustodio

Complementando o cara ai a cima é como se vc tivesse a seguinte piraminde

JPA
Hibernate/TopLink/IBatis/Etc
JDBC

Ou seja, o hibernate utiliza internamente o JDBC e o JPA utiliza internamente o Hibernate/TopLink. Isso de forma obrigatória quando se fala em persistência em banco de dados.

Então, é impossível utilizar Hibernate sem estar utilizando JDBC e não se pode utilizar JPA sem estar utilizando Hibernate/TopLink, etc…

Jair_Rillo_Junior

Dooda,

Pense no JPA como uma especificação e não como um produto em sí. Portanto é necessário algum provider que implementa a especificação (se você quiser, você pode tentar fazre a sua implementação, mas acredito que seja um pouco trabalhoso :wink: ).

A grande vantagem, na minha opinião do JPA, que você pode mudar o provider (de hibernate para toplink por exemplo) sem mudar de fato o código fonte. Isso é muito importante quando você está em um Ambiente EE e muda de Application Server, pois cada application server trás o seu Provider padrão, e se você quiser usar um outro provider do que não o padrão, pode ser uma dor de cabeça (experiência prórpia).
Porém ainda faltam algumas coisas na especificação, como a Criteria do Hibernate-core (acredito que no JPA 2 ela será inclusa).

O que você pode fazer, é montar exemplos de JPA usando diferentes providers e tirar as conclusões para o seu artigo. Talvez isso pode te ajudar (com as configurações): http://www.jairrillo.com/blog/2008/09/04/introduction-to-jpa-part-1-getting-started/

dooda

orrrraaa meu… :-o
acho que agora esclareceu um bom tanto jah… :smiley:

então JDBC é a camada mais baixa de acesso a dados, logo
vem o framework (Hibernate, TopLink, etc…)… que se utilizam da API JPA e do jdbc
lógicamente…

ahhh, considerando que estamos realmente falando somente
sobre persistencia em banco de dados e nada mais… :wink:

agora outra duvida: estou usando OpenJPA da apache,
logo é possivel persistir os dados usando tão somente o JPA implementado
pela apache, quanto os proprios objetos/metodos desse framework?

isso também seria valido para qualquer framework certo?
como poderia estar utilizando JPA do hibernate, e fazer a persistencia
usando o EnetityManagerFactory etc… quanto diretamete o Session do hibernate…

estou correto, ou to mais doidão ainda? :?

Grande abraço…
Obrigado!

dooda

opa Jair, clareou muito mais ainda…

postei acima sem ler a sua explicação… :smiley:

acho que es duvidas, se acabaram-se

pelo menos quanto a JPA… :wink:

Obrigado a todos novamente…

peerless

escrevi sobre isso no meu blog, talvez lhe seja útil… sobre esta confusão entre especificacoes e implementacoes concretas.

dooda

vallew também peerless vou ler tambem…

obrigado!!

P

JPA
Hibernate/TopLink/IBatis/Etc
JDBC

Será que um dia a SUN irá incluir no JDBC uma forma de implementar diretamente o JPA??

Implementar o JPA diretamente pelo JDBC, porque atualmente vc é obrigado à usar um Hibernate, TopLink, etc…

Abs…

:roll: :roll: :roll:

dooda

foi aí que começou minha confusão… hehehehe

aliás, tem algum motivo disso não ter sido implementado ainda? :?

Criado 30 de setembro de 2008
Ultima resposta 1 de out. de 2008
Respostas 9
Participantes 6