logo

JPA x hibernação

O que é JPA?

Um JPA (Java Persistence API) é uma especificação de Java que é usada para acessar, gerenciar e persistir dados entre o objeto Java e o banco de dados relacional. É considerada uma abordagem padrão para mapeamento relacional de objetos.

desativar o modo de desenvolvedor

JPA pode ser visto como uma ponte entre modelos de domínio orientados a objetos e sistemas de banco de dados relacionais. Por ser uma especificação, o JPA não realiza nenhuma operação por si só. Portanto, requer implementação. Portanto, ferramentas ORM como Hibernate, TopLink e iBatis implementam especificações JPA para persistência de dados.


O que é hibernar?

Um Hibernate é uma estrutura Java usada para armazenar objetos Java no sistema de banco de dados relacional. É uma ferramenta ORM (Mapeamento Relacional de Objetos) de código aberto e leve.

O Hibernate é uma implementação do JPA. Portanto, segue os padrões comuns fornecidos pela APP.


Necessidade de JPA

Como vimos até agora, JPA é uma especificação. Ele fornece protótipo e funcionalidade comuns para ferramentas ORM. Ao implementar a mesma especificação, todas as ferramentas ORM (como Hibernate, TopLink, iBatis) seguem os padrões comuns. No futuro, se quisermos mudar nosso aplicativo de uma ferramenta ORM para outra, poderemos fazer isso facilmente.


JPA x hibernação

APP Hibernar
Java Persistence API (JPA) define o gerenciamento de dados relacionais nos aplicativos Java. Hibernate é uma ferramenta de mapeamento objeto-relacional (ORM) que é usada para salvar o estado do objeto Java no banco de dados.
É apenas uma especificação. Várias ferramentas ORM o implementam para persistência de dados. É uma das implementações JPA usadas com mais frequência.
É definido em javax.persistence pacote. É definido em org.hibernate pacote.
O EntityManagerFábrica interface é usada para interagir com a fábrica do gerenciador de entidade para a unidade de persistência. Assim, fornece um gerenciador de entidade. Ele usa SessãoFactory interface para criar instâncias de sessão.
Ele usa EntityManager interface para criar, ler e excluir operações para instâncias de classes de entidades mapeadas. Esta interface interage com o contexto de persistência. Ele usa Sessão interface para criar, ler e excluir operações para instâncias de classes de entidades mapeadas. Ele se comporta como uma interface de tempo de execução entre uma aplicação Java e o Hibernate.
Ele usa Linguagem de consulta de persistência Java (JPQL) como uma linguagem de consulta orientada a objetos para realizar operações de banco de dados. Ele usa Linguagem de consulta do Hibernate (HQL) como uma linguagem de consulta orientada a objetos para realizar operações de banco de dados.