JPA - Présentation

Toute application d'entreprise effectue des opérations de base de données en stockant et en récupérant de grandes quantités de données. Malgré toutes les technologies disponibles pour la gestion du stockage, les développeurs d'applications ont généralement du mal à effectuer efficacement les opérations de base de données.

En règle générale, les développeurs Java utilisent beaucoup de code ou utilisent le cadre propriétaire pour interagir avec la base de données, tandis qu'en utilisant JPA, la charge d'interaction avec la base de données diminue considérablement. Il forme un pont entre les modèles objet (programme Java) et les modèles relationnels (programme de base de données).

Inadéquations entre les modèles relationnel et objet

Les objets relationnels sont représentés dans un format tabulaire, tandis que les modèles d'objets sont représentés dans un graphique interconnecté de format objet. Lors du stockage et de la récupération d'un modèle d'objet à partir d'une base de données relationnelle, une certaine incompatibilité se produit pour les raisons suivantes:

  • Granularity : Le modèle objet a plus de granularité que le modèle relationnel.

  • Subtypes : Les sous-types (signifie héritage) ne sont pas pris en charge par tous les types de bases de données relationnelles.

  • Identity : Comme le modèle objet, le modèle relationnel n'expose pas l'identité lors de l'écriture de l'égalité.

  • Associations : Les modèles relationnels ne peuvent pas déterminer plusieurs relations lors de la recherche dans un modèle de domaine objet.

  • Data navigation : La navigation dans les données entre les objets d'un réseau d'objets est différente dans les deux modèles.

Qu'est-ce que JPA?

L'API de persistance Java est un ensemble de classes et de méthodes permettant de stocker de manière permanente les vastes quantités de données dans une base de données fournie par Oracle Corporation.

Où utiliser JPA?

Pour réduire le fardeau de l'écriture de codes pour la gestion des objets relationnels, un programmeur suit le framework 'JPA Provider', qui permet une interaction facile avec l'instance de base de données. Ici, le cadre requis est repris par JPA.

Histoire JPA

Versions antérieures d'EJB, couche de persistance définie associée à une couche de logique métier à l'aide de l'interface javax.ejb.EntityBean.

  • Lors de l'introduction d'EJB 3.0, la couche de persistance a été séparée et spécifiée comme JPA 1.0 (API Java Persistence). Les spécifications de cette API ont été publiées avec les spécifications de JAVA EE5 le 11 mai 2006 en utilisant JSR 220.

  • JPA 2.0 a été publié avec les spécifications de JAVA EE6 le 10 décembre 2009 dans le cadre du Java Community Process JSR 317.

  • JPA 2.1 a été publié avec la spécification de JAVA EE7 le 22 avril 2013 en utilisant JSR 338.

Fournisseurs JPA

JPA est une API open source, par conséquent, divers fournisseurs d'entreprise tels que Oracle, Redhat, Eclipse, etc. fournissent de nouveaux produits en y ajoutant la saveur de persistance JPA. Certains de ces produits comprennent:

Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.