Java Persistance API
Un article de Wikipédia, l'encyclopédie libre.
L'API de persistance des données JPA fait parti de la spécification EJB3 (). Spécification EJB3 qui fait elle-même parti de la plate-forme J2EE 5.0.
La persistance des données en EJB3 est possible à l'intérieur d'un conteneur EJB3 aussi bien que dans une application autonome J2SE en dehors d'un conteneur particulier.
Cette API réalise la fusion des travaux sur Hibernate] avec la continuité des spécifications EJB précédentes 2.0 et 2.1.
La partie persistance EJB3 doit s'exécuter avec une JVM 5.0, celle de SUN ou JRockit] (voir (en) Rockit) contrairement aux EJB 2.1 qui utilisaient le JDK 1.4 (voir (en) Java Development Kit). L'usage des annotations et des générics est particulièrement mis en avant.
L'utilisation de JPA est prévue pour tourner avec ou sans conteneur J2EE 5.0. Il est donc possible d'exécuter un moteur JPA dans un serveur J2EE 1.4, mais toutefois exécuté à l'aide d'une JVM 5.0.
[modifier] Avantages de JPA
- Utilisation possible de l'héritage des objets
- Souplesse d'écriture du code de persistance
- Grandes possibilités de requêtages avec JPA-QL et les Bulk UPDATE et DELETE (anciennement nommées EJB-QL, le nouveau terme se justifie par l'évolution apportée)
- Possibilité de déploiement dans ou hors un conteneur EJB
- Facilité de tester unitairement les requêtes (hors conteneur EJB)
- Proche des concepts Hibernate (pour ceux qui l'ont utilisé)
[modifier] Inconvénients de JPA
- Implémentation en cours de développement et donc non testées sur des charges importantes
- Apprentissage de quelques nouvelles définitions comme EntityManagerFactory, EntityManager, Persistence unit...
- Serveur d'application J2EE 5.0 non encore fiables, donc attente pour utiliser un conteneur EJB3 (on peut toutefois utiliser un serveur J2EE 1.4)
- Il faut faire un choix pour gérer les transactions autour de la persistance JPA