La Java Persistence API (abrégée en JPA), est une interface de programmation Java permettant aux développeurs d'organiser des données relationnelles dans des applications utilisant la plateforme Java.

Jakarta Persistence

Informations
Créateur Sun MicrosystemsVoir et modifier les données sur Wikidata
Développé par Fondation EclipseVoir et modifier les données sur Wikidata
Dépôt github.com/jakartaee/persistenceVoir et modifier les données sur Wikidata
Type Interface de programmation
Caractéristique technique (d)Voir et modifier les données sur Wikidata
Licence Eclipse Public License 2.0 et GPL linking exception (en)Voir et modifier les données sur Wikidata
Site web jakarta.ee/specifications/persistenceVoir et modifier les données sur Wikidata

La Java Persistence API est à l'origine issue du travail du groupe d'experts JSR 220.

La persistance dans ce contexte recouvre trois zones :

  • l'API elle-même, définie dans le paquetage javax.persistence ;
  • le langage Java Persistence Query (JPQL) ;
  • l'objet/les métadonnées relationnelles.

Spécificités

modifier

La Java Persistence API repose essentiellement sur l'utilisation des annotations, introduites dans Java 5. Elles permettent de définir facilement des objets métier, qui pourront servir d'interface entre la base de données et l'application, dans le cadre d'un mapping objet-relationnel.

Par exemple, cette classe traduit une relation "Compte" dans une base de données SQL :

package org.foo.models.auth;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

@Entity
@Table(name = "compte")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Compte.findAll", query = "SELECT a FROM Compte a"),
    @NamedQuery(name = "Compte.findByLogin", query = "SELECT a FROM Compte a WHERE a.login = :login"),
    @NamedQuery(name = "Compte.findByEmail", query = "SELECT a FROM Compte a WHERE a.email = :email")})
public class Compte implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "login")
    private String login;
    @Basic(optional = false)
    @Column(name = "password")
    private String password;
    @Basic(optional = false)
    @Column(name = "email")
    private String email;
    
    @JoinColumn(name = "typeProfil", referencedColumnName = "idProfil")
    @ManyToOne(optional = false)
    private Profil typeProfil;
    
    public Compte() {
    }

    public Compte(String login) {
        this.login = login;
    }

    public Compte(String login, String password, String email) {
        this.login = login;
        this.password = password;
        this.email = email;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Profil getTypeProfil() {
        return typeProfil;
    }

    public void setTypeProfil(Profil typeProfil) {
        this.typeProfil = typeProfil;
    }
    
}

Dans l'application, il devient alors facile d'ajouter, modifier et supprimer des données, en passant par des gestionnaires d'entités, fournis par l'API.

Voir aussi

modifier

Articles connexes

modifier

Références externes

modifier

📚 Artikel Terkait di Wikipedia

Java Persistence Query Language

spécification Java Persistence API. JPQL sert à exécuter des requêtes sur des entités stockées en base de données mais en travaillant sur les entités Java correspondant

Persistance (informatique)

pickle JOAFIP Module driver basé sur les standards : JDBC API : EJB3 Fractal Java Persistence API JDO et SDO Component : JPOX : implémente JDO JPA Laios

Hibernate

9 juin 2026 (consulté le 10 juin 2026) NHibernate Tools Java Persistence API Java Persistence Query Language Christian Bauer (développeur) AppFuse (en)

GlassFish

la norme Java EE 5 qui recouvre : EJB 3 (approche POJO, configuration par annotations, injection de dépendance) ; JPA (Java Persistence API) : standard

JPA

même nom. JPA est un sigle qui peut désigner : Java Persistence API, une interface de programmation Java permettant aux développeurs d'organiser des données

Mapping objet-relationnel

mapping objet-relationnel : Java Java Persistence API TopLink EclipseLink Apache OpenJPA JOOQ Hibernate Spring Data Java Data Objects Apache Cayenne (en)

Apache OpenJPA

implémentation open source de la Java Persistence API. Il s'agit d'une solution de mapping objet-relationnel (ORM) pour le langage Java simplifiant le stockage

Enterprise JavaBeans

de deux sortes : BMP (Bean Managed Persistence) ou CMP (Container Managed Persistence) (voir Java Persistence API). Les EJB BMP sont des beans dont la