Diferença entre JPA e Hibernate

Diferença entre JPA e Hibernate
Diferença entre JPA e Hibernate

Vídeo: Diferença entre JPA e Hibernate

Vídeo: Diferença entre JPA e Hibernate
Vídeo: Complexo ou Complicado? O Que Fazer para Gerenciar Projetos? 2024, Novembro
Anonim

JPA vs Hibernar

Quase todos os aplicativos corporativos precisam acessar bancos de dados relacionais regularmente. Mas um problema enfrentado com tecnologias anteriores (como JDBC) era a incompatibilidade de impedância (diferença entre tecnologias orientadas a objetos e relacionais). Uma solução para este problema foi introduzida através da introdução de uma camada abstrata chamada camada de persistência, que encapsula o acesso ao banco de dados a partir da lógica de negócios. JPA (Java Persistence API) é um framework dedicado ao gerenciamento de dados relacionais (usando a camada de persistência) em aplicações Java. Existem muitas implementações de fornecedores de JPA usadas na comunidade de desenvolvedores Java. Hibernate é a implementação mais popular do JPA (DataNucleus, EclipseLink e OpenJPA são alguns outros). A versão mais recente do JPA (JPA 2.0) é totalmente suportada pelo Hibernate 3.5, lançado em março de 2010.

O que é JPA?

JPA é um framework para gerenciamento de dados relacionais para Java. Ele pode ser usado com aplicativos que utilizam JSE (Java Platform, Standard Edition) ou JEE (Java Platform, Enterprise Edition). Sua versão atual é o JPA 2.0, que foi lançado em 10 de dezembro de 2009. O JPA substituiu os beans de entidade EJB 2.0 e EJB 1.1 (que foram fortemente criticados por serem pesados pela comunidade de desenvolvedores Java). Embora os beans de entidade (em EJB) fornecessem objetos de persistência, muitos desenvolvedores estavam acostumados a utilizar objetos relativamente leves oferecidos pelo DAO (Data Access Objects) e outros frameworks semelhantes. Como resultado, o JPA foi introduzido e capturou muitos dos recursos interessantes dos frameworks mencionados acima.

Persistence conforme descrito em JPA cobre a API (definida em javax.persistência), JPQL (Plataforma Java, Enterprise Edition) e metadados necessários para objetos relacionais. O estado de uma entidade de persistência geralmente é persistido em uma tabela. As instâncias de uma entidade correspondem às linhas da tabela do banco de dados relacional. Os metadados são usados para expressar os relacionamentos entre entidades. Anotações ou arquivos de descritor XML separados (implantados com o aplicativo) são usados para especificar metadados em classes de entidade. JPQL, que é semelhante às consultas SQL, são usados para consultar entidades armazenadas.

O que é Hibernar?

Hibernate é um framework que pode ser usado para mapeamento objeto-relacional destinado à linguagem de programação Java. Mais especificamente, é uma biblioteca ORM (mapeamento relacional de objeto) que pode ser usada para mapear modelo relacional de objeto em modelo relacional convencional. Em termos simples, ele cria um mapeamento entre classes e tabelas Java em bancos de dados relacionais, também entre tipos de dados Java para SQL. O Hibernate também pode ser usado para consulta e recuperação de dados gerando chamadas SQL. Portanto, o programador fica livre do manuseio manual de conjuntos de resultados e conversão de objetos. O Hibernate é lançado como um framework gratuito e de código aberto distribuído sob licença GNU. Uma implementação para a API JPA é fornecida no Hibernate 3.2 e versões posteriores. Gavin King é o fundador do Hibernate.

Qual é a diferença entre JPA e Hibernate?

JPA é uma estrutura para gerenciar dados relacionais em aplicativos Java, enquanto o Hibernate é uma implementação específica do JPA (portanto, idealmente, JPA e Hibernate não podem ser comparados diretamente). Em outras palavras, o Hibernate é um dos frameworks mais populares que implementa JPA. O Hibernate implementa o JPA através das bibliotecas Hibernate Annotation e EntityManager que são implementadas sobre as bibliotecas Hibernate Core. Tanto o EntityManager quanto o Annotations seguem o ciclo de vida do Hibernate. A versão JPA mais recente (JPA 2.0) é totalmente suportada pelo Hibernate 3.5. JPA tem a vantagem de ter uma interface padronizada, então a comunidade de desenvolvedores estará mais familiarizada com ela do que com o Hibernate. Por outro lado, as APIs nativas do Hibernate podem ser consideradas mais poderosas porque seus recursos são um superconjunto do JPA.

Recomendado: