sábado, 1 de março de 2008

Java Persistence API - JPA

Criada para ser o padrão de persistência e mapeamento Objeto-Relacional, a Java Persistence API - JPA - foi concebida na mesma JSR, de número 220, que definiu a nova versão dos Enterprise JavaBeans.

Com preocupações sobre a evolução desta API, existe a expectativa de se criar uma JSR exclusiva para ela. Mas, ainda, não existe nada de concreto neste sentido.

Originalmente a idéia era simplificar a especificação dos EJBs Entity Beans do tipo CMP(Container Managed Persistence), daí a JPA ter sido desenvolvido na mesma JSR dos EJB. Porém, o Expert Group percebeu que seria melhor fazer uma especificação seguindo o estilo dos frameworks de persistência disponíveis no mercado: Hibernate, Toplink e JDO. Unindo as melhores idéias em cada um deles. O que motivaria a criação de uma nova JSR.

Se você tiver um ambiente de produção com uma JVM atualizada para a versão 5 é uma das melhores atualizações que podem ser utilizadas nos seus próximos sistemas.

Antes de escrever um tutorial sobre o assunto, vou listar alguns dos tutoriais que eu já li para implementar meu primeiro sistema com a JPA:

  1. An Introduction to Java Persistence for Client-Side Developers: Explica de forma clara como funciona a API usando como exemplo uma agenda. É um ótimo ponto de partida para conhecer a especificação e ter alguma coisa rodando. Utiliza a implementação TopLink Essentials;
  2. More Persistence for Client-Side Developers: Continuação do artigo anterior explica conceitos sobre o ciclo de vida dos objetos no EntityManager e fala sobre relacionamentos entre objetos. Utiliza a implementação Hibernate;
  3. Persistence Pays Offs: Advanced Mapping with JPA: Explicações mais avançadas sobre mapeamento. Herança e associações * * são abordadas neste artigo.

  4. Using Composite Keys with JPA: Tutorial sobre mapeamento de chave primária composta. Recomendado apenas quando o banco de dados já existe.
  5. TopLink JPA: Tutorial da Oracle. Utiliza a implementação TopLink Essentials, que é a Implementação de Referencia(RI), e está disponível junto com o novo servidor de aplicações JEE - GlassFish;
  6. Eclipse DALI: Plugin do Eclipse para auxiliar na utilização do JPA. Tem uns links para os tutoriais dos provedores de persistência.
  7. Managing JPA Entity Mappings: Tutorial desenvolvido pela BEA para mostrar o suporte visual dado pelo Workshop Studio para o desenvolvimento de aplicações de JPA.
  8. The Java Persistence API - A Simpler Programming Model for Entity Persistence: Comparação entre a versão anterior do EJB EntityBean CMP e a JPA apresentada pela Sun Microsystem.
  9. Field- vs. Property-Based access in JPA: Uma reflexão, feita por Adam Bien, sobre a forma de acesso aos atributos da entidade pelo EntityManager;
  10. Property Based Access in JPA - is an Emerging Antipattern: Crítica a utilização de anotações JPA feita em métodos getXXX(), também conhecido por Propety Based Access.
  11. Using Java Web Start with the Java Persistence API: Usando JPA com JavaWebStart.

T+

Leandro Kersting

Nenhum comentário: