Uma duvida que sempre me fez coçar um pouco a cabeça devido ao meu pouco conhecimento dessa tecnologia. É possivel trabalhar apenas com as anotações e classes do JPA sem o Hibernate?
No unico projeto que já trabalhei com JPA, usei apenas as annotations e as classes do proprio JPA. POREM, inclui no classpath da aplicação os jars do hibernate. Como a coisa funcionou sem problemas, admito que nao me aprofundei mais no assunto e deixei por isso mesmo :lol:. Porem, agora estou começando um projeto grande e ainda estou definindo as tecnologias que vou usar, e como o JBoss está disponivel, pensei no JPA, embora já tenha uma camada JDBC quase pronta para acessar a base. Porem, para usar o JPA entender melhor a relação dele co o Hibernate.
O JPA é uma especificação enquanto que o Hibernate a implementa. Há outros frameworks que implementam JPA, como o TopLink. Mas o Hibernate aparentemente é o mais utilizado.
O
odair.bonin
Claro que tem.
Vc pode escolher:
–TopLink
–OpenJPA
–EclipseLink
Mas, todos eles são filhos do mesmo pai: Hibernate (inclusive a própria especificação JPA) :lol:
[]´s
M
marcosharbs
Como o amigo acima falou JPA é uma especificação e o Hibernate é implementado com base nessa especificação assim como outros frameworks para essa parte de persistência, o que voçê pode fazer é estudar a especificação e então voçê mesmo implementar um framework ou uma camada em seu projeto para fazer essa persistência com base nessa especificação.
R
rubensdemelo
Não precisa reinventar a roda. Use o hibernate e seja feliz
A
alias
Obrigado amigos!
Mas acho que me expressei mal.
O que eu gostaria de saber é se é possivel trabalhar com o JPA apenas usando javax.persistence.*, sem nenhum framework, apenas a api pura.
Agradeço ao marcosharbs pela ajuda, mas nem de longe pretendo criar meu proprio framework :lol:
Conheço as classes da api javax.persistence.* o suficiente pra me virar e criar uma camada de persistencia, meu medo é inventar de juntar o hibernate e ferrar tudo. Obviamente estou estudando o mesmo e devo acabar usando ele mesmo…
Aproveitando o topico, para trabalhar com o hibernate, é OBRIGATORIO mapear as classes-entidades naqueles arquivos xml, ou pode-se usar as anotations do jpa?
Obrigado pessoal!
R
rubensdemelo
Não é obrigatório. Vc pode usar apenas as annotations diretamente nas classes java.
J
javamaniaco
Eu até tentei usar a JPA sem Hibernate, mas o mercado pega forte neste framework. TopLink eu aprendi apenas em livro e o EclipseLink nunca usei.
F
fantomas
Acho que o quê te incomoda na minha opinião é o “Por que essa gente utiliza Hibernate, Toplink e etc… com JPA?”
Se for isso, aqui vai a explicação que ouvi:
Os caras utilizam o Hibernate, Toplink por causa de recursos que estão presente neles e não na JPA (especificação). No Hibernate, além de ser um ótimo ORM tem uma coisa bacana chamada CRITERIA que na JPA, se não me engano ainda não tem. O Toplink (nunca utilizei) dizem que é mais rápido, e me parece que ainda tem alguns recusos diferenciados para acesso a banco (provavelmente o Oracle).
Você junta recursos específicos da implementação (Hibernate, TopLink e etc…) mais a especificação acaba resultando em JPA + Hibernate, JPA + TopLink e JPA + etc…