JPA: O que é, Implementações e Mapeamento Objeto-Relacional
Classificado em Computação
Escrito em em
português com um tamanho de 4,06 KB
JPA: O que é e Como Funciona
JPA é um framework leve, baseado em POJOs (Plain Old Java Objects) para persistir objetos Java. Desenvolvido para a EJB 3.0, como parte da especificação JSR 220, mas não é limitado a EJB. JAVA > JPA > BANCO DE DADOS.
Implementações do JPA
Implementações: Hibernate, Toplink, EclipseLink.
EclipseLink é a implementação no GlassFish Server.
JPA 2.1: Novas Funcionalidades
JPA 2.1 incluiu a capacidade adicional de mapeamento, expansões para a Java Persistence Query Language (JPQL), a API Criteria para criação de consultas dinâmicas, entre outras características.
POJOs Persistentes
POJOs Persistentes: (Plain Old Java Object ou Velho e Simples Objeto Java), significando que os objetos possuem design simples que não dependem da herança de interfaces ou classes de frameworks externos.
Qualquer objeto com um construtor padrão pode ser feito persistente sem nenhuma alteração na linha de código.
Mapeamento Objeto-Relacional com JPA
Mapeamento Objeto-Relacional com JPA é inteiramente dirigido a metadados. Isto pode ser feito através de anotações no código ou através de um XML definido externamente.
Bancos de Dados utilizam tabelas relacionais (linhas x colunas).
Sistemas OO utilizam objetos (instâncias x atributos).
Permite o mapeamento de entidades e seus relacionamentos (tabelas) em Objetos; Busca facilitar a persistência de dados.
Cada instância de objeto corresponde a um registro no banco de dados.
Consultas em Objetos com JPQL
Consultas em Objetos: As consultas podem ser realizadas através da Java Persistence Query Language (JPQL), uma linguagem de consulta que é derivada do EJB QL e transformada depois para SQL.
As consultas usam um esquema abstraído que é baseado no modelo de entidade como oposto às colunas na qual a entidade é armazenada.
Configurações Simplificadas no JPA
Configurações simples: Existe um grande número de características de persistência que a especificação oferece, todas são configuráveis através de anotações, XML ou uma combinação das duas.
Entidades JPA: Conceitos e Características
Entidade (@Entity public class Cliente) é o objeto que pode ser gravado pelo mecanismo de persistência.
Toda entidade tem de ter um construtor sem argumentos.
Cada atributo deve possuir seu get e set.
Toda entidade tem de ter uma chave primária.
Uma entidade JPA é um POJO anotado.
POJOs como Entidades do Modelo
As entidades do modelo são POJOs.
POJO é uma classe Java com atributos privados, construtor vazio e métodos de acesso getters e setters.
Mapeamento Objeto-Relacional: Configuração e Anotações
Mapeamento objeto-relacional é realizado com:
- Configuração – XML (no arquivo
persistence.xml) - Anotações (uso de código anotado com
@)
EntityManager e Persistence Unit
EntityManager: centraliza a interação com o JPA.
Persistence Unit: define uma unidade de persistência (do acesso a um banco de dados definido no persistence.xml).
Anotações JPA Comuns
@Entity – informa ao JPA que a classe é uma entidade e deve ser persistida.
@Table(name=“...”) – informa o nome da tabela que irá persistir a entidade.
@Id – marca uma propriedade da classe como chave primária – identificador.
@GeneratedValue – como gerar o id (chave primária).
@Column (name=“...”) – informa o nome da coluna que irá persistir o campo.
@Temporal (tipo) – Data, Hora e Data+Hora.
@Transient – não persiste a coluna.