Quelles implémentations JPA (Java Persistence API) utilisez-vous et pourquoi ?
Partagez votre expérience

Le , par Mickael Baron, Responsable Java
La spécification JPA (Java Persistence API) décrit comment mapper des objets Java avec une base de données relationnelle.

Différentes implémentations existent pour cette spécification et sans être exhaustif les plus connues sont


Quelle(s) implémentation(s) utilisez-vous actuellement ? Partagez également votre expérience.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de zekzek zekzek - Candidat au Club http://www.developpez.com
le 13/06/2012 à 9:54
J'avais fait un proto réalisé avec Mongo et Morphia, plutôt satisfaisant sur la simplicité.

Mais Morphia restant en v 0.99 depuis bientôt 1 an, et sans grande activité, je vais peut être me tourner vers EclipseLink (les quelques exemples se rapprochent de morphia en terme de simplicité).

A tester néanmoins avant de changer pour ElipseLink : les recherches géospatiales et autres subtilités natives de mongo, et la performance comparé à morphia.
Avatar de OButterlin OButterlin - Modérateur http://www.developpez.com
le 13/06/2012 à 15:27
L'intérêt de JPA est de s'affranchir de l'implémentation... donc, syntax error pour moi

J'utilise l'implémentation liée au serveur d'application cible...
Hibernate sur JBoss
EclipseLink (il me semble) pour GlassFish
Avatar de Mickael Baron Mickael Baron - Responsable Java http://www.developpez.com
le 13/06/2012 à 15:34
J'avais fait un proto réalisé avec Mongo et Morphia, plutôt satisfaisant sur la simplicité.

En fait tu souhaitais utilisait JPA pour un univers NoSQL ? J'ai remarqué que dans la prochaine version d'EclipseLink il y avait des annotations spécifiques pour le NoSQL. A noter qu'HibernateOGM se veut aussi un ORM pour le NoSQL.

Mickael
Avatar de Heimdal Heimdal - Membre éclairé http://www.developpez.com
le 13/06/2012 à 18:22
Et ça marche assez bien la portabilité entre les implémentations?

Je n'ai pas encore de retour pour OpenJPA qui est l’implémentation standard de Websphere et Weblo. Je devrais avoir des réponses dans les prochains mois avec un nouveau projet WAS 8.

En ce qui concerne Hibernate/EclipseLink, je n'ai pas clairement testé la portabilité (SSII oblige, on vise une seule cible), mais lors de l'implémentation je n'ai pas en tête avoir été confronté à des comportements différents. Bien entendu j'invite les développeurs a rester sur jpql/Criteria API et javax.persistence de partout.
Dans le cas contraire, la portabilité en prend forcement un coup.
Avatar de OButterlin OButterlin - Modérateur http://www.developpez.com
le 14/06/2012 à 9:04
Citation Envoyé par Heimdal  Voir le message
...
Bien entendu j'invite les développeurs a rester sur jpql/Criteria API et javax.persistence de partout.
Dans le cas contraire, la portabilité en prend forcement un coup.

Clairement...

Je trouve ça assez naze d'ailleurs d'utiliser des annotations et/ou des instructions propriétaires dans ce contexte...
Même s'il faut reconnaître qu'il manque des petites choses qui seraient bien pratiques et des anomalies (peut-être liées à l'implémentation d'ailleurs)... j'en ai découvert une hier...
Avatar de bruneltouopi bruneltouopi - Membre confirmé http://www.developpez.com
le 16/06/2012 à 14:08
Pour un début j'utilise Hibernate mais avec JPA mais j'utilise tout en JPA pour le moment.avec un serveur glassfish.

Aussi j'ai constaté que la documentation Hibernate est notamment plus étoffé
Avatar de Mickael Baron Mickael Baron - Responsable Java http://www.developpez.com
le 17/06/2012 à 21:28
Bonjour,

Je constate que beaucoup ne s'intéresse pas à l'implémentation et tente d'utiliser JPA sans se soucier du moteur. Comment faites-vous pour configurer le cache ou les autres choses qui sont vraiment spécifiques au moteur d'implémentation ?

Mickael
Avatar de banitz banitz - Membre à l'essai http://www.developpez.com
le 19/06/2012 à 17:58
Citation Envoyé par keulkeul  Voir le message
En fait tu souhaitais utilisait JPA pour un univers NoSQL ? J'ai remarqué que dans la prochaine version d'EclipseLink il y avait des annotations spécifiques pour le NoSQL. A noter qu'HibernateOGM se veut aussi un ORM pour le NoSQL.

Mickael

Le driver EclipseLink fonctionne bien.

Pour l'instant j'ai juste un query avec "delete from" qui ne passe pas mais c'est pas bien grave car on peut utiliser des requêtes natives de mongo ce qui est bien pratique dans certains cas.
Avatar de ahmedpa ahmedpa - Membre averti http://www.developpez.com
le 21/06/2012 à 16:30
je suis entrain d'utiliser hibernate et je n'ai jamais eu de problèmes avec !
Avatar de Mickael Baron Mickael Baron - Responsable Java http://www.developpez.com
le 21/06/2012 à 22:15
Le driver EclipseLink fonctionne bien.

Donc tu utilises les annotations pour NoSQL (@NoSql(dataFormat=DataFormatType.MAPPED)) ?

ça serait très intéressant de proposer un article concernant EclipseLink pour les solutions NoSQL

Mickael
Avatar de slevy slevy - Membre confirmé http://www.developpez.com
le 06/06/2013 à 10:13
Bonjour,
J'utilise typiquement Hibernate dans les développements avec Spring sous Tomcat (bonne intégration Spring/Hibernate) ou Java EE 6 sous JBoss.
Mais j'ai découvert récemment EclipseLink qui est très pratique pour accèder à des procédures stockées par exemple, grâce notamment aux extensions DescriptorCustomizer qui permettent de customiser simplement le comportement des méthodes standard de l'EntityManager pour accèder à des procédures PL/SQL au lieu des tables.
Offres d'emploi IT
Expert technique sur riskone
Societe Generale - Ile de France - Ile de France
Architecte de données h/f
Societe Generale - Ile de France - Ile de France
Développeur symfony2 - médias
Omnilog - Ile de France - Neuilly-sur-Seine (92200)

Voir plus d'offres Voir la carte des offres IT
Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -