quinta-feira, 10 de maio de 2007

JPA - Java Persistence API

A JPA é o resultado do trabalho do JCP durante a criação do EJB 3.0

O EJB 3.0 define uma camada de persistência na base de dados completamente separada e que pode facilmente trabalhar sozinha sem necessidade de um application server.

É por isso que a implementação EJB 3.0 do Jboss usa o hibernate. Neste caso ele é usado como a camada de persistência dos objectos na base de dados. Assim, o hibernate é uma implementação JPA.

Existem por aí outras implementações JPA disponíveis, como por exemplo o OpenJpa da apache, a implementação da Sun no glassfish ou o kodo.
Todas as outras API(s) de persistência existentes (e são várias) podem agora suportar facilmente os interfaces definidos no standard e desta forma todos ganharem com a possibilidade de escolha que o standard nos oferece.

Assim, sempre que uma aplicação desenvolvida em Java necessitar de persistir os dados numa base de dados relacional poderemos fazê-lo usando um standard (e por isso ter portabilidade e independência das implementações) mesmo que não esteja disponível um EJB container.

Uma das boas características do standard é o facto de se preocupar em tornar simples a persistência de simples POJOS (Plain Old Java Objects) em tabelas de bases de dados relacionais.
Esta simplicidade é conseguída em grande parte devido à utilização das anotações (para fazer o mapeamento com a base de dados) e de uma linguagem "Sql like".

É definitivamente uma API a usar de forma extensiva no desenvolvimento das aplicações.