JPA - Arquitetura

Java Persistence API é uma fonte para armazenar entidades de negócios como entidades relacionais. Mostra como definir um PLAIN OLD JAVA OBJECT (POJO) como uma entidade e como gerenciar entidades com relações.

Arquitetura de nível de classe

A imagem a seguir mostra a arquitetura de nível de classe do JPA. Mostra as principais classes e interfaces do JPA.

A tabela a seguir descreve cada uma das unidades mostradas na arquitetura acima.

Unidades Descrição
EntityManagerFactory Esta é uma classe de fábrica do EntityManager. Ele cria e gerencia várias instâncias de EntityManager.
EntityManager É uma Interface, gerencia as operações de persistência dos objetos. Funciona como fábrica para a instância Query.
Entity Entidades são os objetos de persistência, armazenados como registros no banco de dados.
EntityTransaction Ele tem relacionamento de um para um com EntityManager. Para cada EntityManager, as operações são mantidas pela classe EntityTransaction.
Persistence Esta classe contém métodos estáticos para obter a instância EntityManagerFactory.
Query Essa interface é implementada por cada fornecedor JPA para obter objetos relacionais que atendam aos critérios.

As classes e interfaces acima são usadas para armazenar entidades em um banco de dados como um registro. Eles ajudam os programadores, reduzindo seus esforços para escrever códigos para armazenar dados em um banco de dados, para que possam se concentrar em atividades mais importantes, como escrever códigos para mapear as classes com tabelas de banco de dados.

Relacionamentos de classe JPA

Na arquitetura acima, as relações entre as classes e interfaces pertencem ao pacote javax.persistence. O diagrama a seguir mostra a relação entre eles.

  • A relação entre EntityManagerFactory e EntityManager é one-to-many. É uma classe de fábrica para instâncias de EntityManager.

  • A relação entre EntityManager e EntityTransaction é one-to-one. Para cada operação EntityManager, há uma instância EntityTransaction.

  • A relação entre EntityManager e Query é one-to-many. Muitos números de consultas podem ser executados usando uma instância de EntityManager.

  • A relação entre EntityManager e Entity é one-to-many. Uma instância do EntityManager pode gerenciar várias entidades.