1.3 - JPA (Java Persistence API)
Apesar da JPA ter surgido internamente em função das necessidades da especificação EJB, a especificação JPA se tornou uma funcionalidade independente. Porém, é importante frisar que o uso de JPA em conjunto com EJB permite a criação de serviços de dados remotos altamente eficazes.
A primeira especificação JPA (JPA 1.0) foi originada pela Java Comunity Process (JCP) Java Specification Request (JSR) de número 220 em maio de 2006, ou simplesmente JCP/JSR 220. A JPA 2.0 foi o resultado da JCP/JSR 317 em dezembro de 2009 e a versão atual da JPA 2.1 foi o resultado da JCP/JSR 338 de abril de 2013.
Apesar da linguagem SQL ser padronizada pelo ISO/IEC 9075, cada fabricante de SGBD’s tem a liberdade de estender a padronização e criar suas próprias funcionalidades/facilidades/dialetos para uso do respectivo produto. Deste modo, utilizar o padrão DAO envolve conhecer todos os detalhes que permeiam os referidos dialetos. E, portanto, em função da quantidade de detalhes que circundam os diversos dialetos, a especificação JPA foi concebida.
A JPA é uma especificação, ou seja, possui um conjunto de classes/interfaces bem definidas para permitir desacoplar a aplicação dos inúmeros SGBD’s existentes atualmente no mercado de TIC. Para que essa especificação possa ser executada, se faz necessário que a referida especificação seja implementada. Deste modo, existem diversos providers/frameworks de mercado que implementam a referida especificação tais como:
Dentre os providers/frameworks de mercado que implementam a especificação JPA, podemos citar