TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

JPA - Java Persistence API

Ensaios: JPA - Java Persistence API. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  17/11/2014  •  2.828 Palavras (12 Páginas)  •  375 Visualizações

Página 1 de 12

Introdução à JPA

JPA é um framework leve, baseado em POJOS (Plain Old Java Objects) para persistir objetos Java. A Java Persistence API, diferente do que muitos imaginam, não é apenas um framework para Mapeamento Objeto-Relacional (ORM - Object-Relational Mapping), ela também oferece diversas funcionalidades essenciais em qualquer aplicação corporativa.

Atualmente temos que praticamente todas as aplicações de grande porte utilizam JPA para persistir objetos Java. JPA provê diversas funcionalidades para os programadores, como será mais detalhadamente visto nas próximas seções. Inicialmente será visto a história por trás da JPA, a qual passou por algumas versões até chegar na sua versão atual.

História da Especificação

Após diversos anos de reclamações sobre a complexidade na construção de aplicações com Java, a especificação Java EE 5 teve como principal objetivo a facilidade para desenvolver aplicações JEE 5. O EJB 3 foi o grande percursor para essa mudança fazendo os Enterprise JavaBeans mais fáceis e mais produtivos de usar.

No caso dos Session Beans e Message-Driven Beans, a solução para questões de usabilidade foram alcançadas simplesmente removendo alguns dos mais onerosos requisitos de implementação e permitindo que os componentes sejam como Plain Java Objects ou POJOS.

Já os Entity Beans eram um problema muito mais sério. A solução foi começar do zero. Deixou-se os Entity Beans sozinhos e introduziu-se um novo modelo de persistência. A versão atual da JPA nasceu através das necessidades dos profissionais da área e das soluções proprietárias que já existiam para resolver os problemas com persistência. Com a ajuda dos desenvolvedores e de profissionais experientes que criaram outras ferramentas de persistência, chegou a uma versão muito melhor que é a que os desenvolvedores Java conhecem atualmente.

Dessa forma os líderes das soluções de mapeamento objetos-relacionais deram um passo adiante e padronizaram também os seus produtos. Hibernate e TopLink foram os primeiros a firmar com os fornecedores EJB.

O resultado final da especificação EJB finalizou com três documentos separados, sendo que o terceiro era o Java Persistence API. Essa especificação descrevia o modelo de persistência em ambos os ambientes Java SE e Java EE.

Entre as principais inclusões na JPA destacam-se:

• POJOS Persistentes: Talvez o aspecto mais importante da JPA seja o fato que os objetos são POJOs (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 default pode ser feito persistente sem nenhuma alteração numa linha de código. 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.

• 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 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. Anotações são simples de usar, convenientes para escrever e fácil de ler. Além disso, JPA oferece diversos valores defaults, portanto para já sair usando JPA é simples, bastando algumas anotações.

• Integração e Teste: Atualmente as aplicações normalmente rodam num Servidor de aplicação, sendo um padrão do mercado hoje. Testes em servidores de aplicação são um grande desafio e normalmente impraticáveis. Efetuar teste de unidade e teste caixa branca em servidores de aplicação não é uma tarefa tão trivial. Porém, isto é resolvido com uma API que trabalha fora do servidor de aplicação. Isto permite que a JPA possa ser utilizada sem a existência de um servidor de aplicação. Dessa forma, testes unitários podem ser executados mais facilmente.

Entidades

Uma entidade em JPA é um objeto de domínio leve e de persistência. Por objeto de domínio entendemos os objetos de classes que pertencem ao domínio da aplicação (por exempo, as regras de negócios). Por leve entendemos que o custo de construir instâncias e manipular tais objetos é muito baixo, se comparado com algumas características de EJB e JEE. Finalmente entendemos que um objeto de persistência é um objeto que tem seus valores recuperados e/ou enviados (persistidos) a um banco de dados.

Geralmente uma entidade JPA representa uma tabela em um banco de dados relacional e cada instância desta entidade representa uma linha (registro ou tupla) na tabela. A base de uma entidade é a classe de entidade, embora entidades podem usar classes auxiliares (helper classes).

Uma classe de entidade JPA é tão simples quanto um POJO (Plain Old Java Objects). Isso quer dizer que qualquer classe Java pode ser uma entidade JPA. Veja um exemplo:

import javax.persistence.*;

@Entity

@Table(name="usuarios")

public class Usuario{

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

private int id;

private String nome;

public Usuario(){}

public Usuario(int id){

this.id = id;

}

public int getId(){

return id;

}

public void setId(int id){

this.id = id;

}

public String getNome(){

return nome;

}

public void setNome(String nome){

this.nome = nome;

}

...

Baixar como (para membros premium)  txt (19.6 Kb)  
Continuar por mais 11 páginas »
Disponível apenas no TrabalhosGratuitos.com