Jakarta Persistence
Pour les articles homonymes, voir JPA.
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant (comment ? ) selon les recommandations des projets correspondants.
Consultez la liste des tâches à accomplir en page de discussion.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.
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 | modifier le code ]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 :
packageorg.foo.models.auth; importjava.io.Serializable; importjavax.persistence.Basic; importjavax.persistence.Column; importjavax.persistence.Entity; importjavax.persistence.Id; importjavax.persistence.JoinColumn; importjavax.persistence.ManyToOne; importjavax.persistence.NamedQueries; importjavax.persistence.NamedQuery; importjavax.persistence.Table; importjavax.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")}) publicclass CompteimplementsSerializable{ privatestaticfinallongserialVersionUID=1L; @Id @Basic(optional=false) @Column(name="login") privateStringlogin; @Basic(optional=false) @Column(name="password") privateStringpassword; @Basic(optional=false) @Column(name="email") privateStringemail; @JoinColumn(name="typeProfil",referencedColumnName="idProfil") @ManyToOne(optional=false) privateProfiltypeProfil; publicCompte(){ } publicCompte(Stringlogin){ this.login=login; } publicCompte(Stringlogin,Stringpassword,Stringemail){ this.login=login; this.password=password; this.email=email; } publicStringgetLogin(){ returnlogin; } publicvoidsetLogin(Stringlogin){ this.login=login; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicStringgetEmail(){ returnemail; } publicvoidsetEmail(Stringemail){ this.email=email; } publicProfilgetTypeProfil(){ returntypeProfil; } publicvoidsetTypeProfil(ProfiltypeProfil){ 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 | modifier le code ]Articles connexes
[modifier | modifier le code ]Références externes
[modifier | modifier le code ]- (en) https://jakarta.ee/specifications/persistence/
- (en) EJB 3.0
- (en) EJB 2.0
- (en) EJB 2.1
- (en) Java Persistence API Javadoc