Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Responsable Java

    Quelles implémentations JPA utilisez-vous et pourquoi ? partagez votre expérience
    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.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  2. #2
    Responsable Java

    J'ai voté Hibernate puisque je l'utilise bien avant que la spécification JPA apparaisse.

    J'ai déjà joué avec Toplink (maintenant EclipseLink).

    A noter qu'il m'arrive d'utiliser des annotations spécifiques aux implémentations.

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  3. #3
    Membre éprouvé
    Pourquoi Spring Data JPA dans cette liste ? L'utilisation de Spring Data facilite l'écriture des DAO mais ne permet pas de s'affranchir d'une implémentation JPA !

  4. #4
    Membre régulier
    Citation Envoyé par Philippe Bastiani Voir le message
    Pourquoi Spring Data JPA dans cette liste ? L'utilisation de Spring Data facilite l'écriture des DAO mais ne permet pas de s'affranchir d'une implémentation JPA !
    eh pas sûr :/

    J'ai voté Hibernate et EclipseLink.

    J'ai commencé aussi sou Hibernate avant JPA .

  5. #5
    Responsable Java

    Pourquoi Spring Data JPA dans cette liste ? L'utilisation de Spring Data facilite l'écriture des DAO mais ne permet pas de s'affranchir d'une implémentation JPA !
    En effet, je crois que tu as raison. Je viens de regarder un peu plus dans les détails et il faut explicitement donner l'implémentation.

    Je vais donc modifier le sondage

    Merci

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  6. #6
    Membre éprouvé
    Citation Envoyé par keulkeul Voir le message
    En effet, je crois que tu as raison. Je viens de regarder un peu plus dans les détails et il faut explicitement donner l'implémentation.

    Je vais donc modifier le sondage

    Merci

    Mickael
    Perso, pour mes projets persos & professionnels j'utilise EclipseLink avec la surcouche Spring ou SpringData ! Ce dernier à l'avantage de formaliser les accès DAOs pour 90% des cas d'utilisations...

    Pourquoi utiliser EclipseLink ?: le couple: implémentation de référence pour JPA + licence!

    cdlt,
    Philippe

  7. #7
    Membre actif
    Selon la version de JPA.

    JPA 1 Hibernate, JPA 2 EclipseLink.
    J'ai migré vers EclipseLink pour sa simplicité dans les cas "avancés" contrairement à Hibernate que je trouvais plus compliqué.

  8. #8
    Membre régulier
    Hibernate car fallait bien partir sur une implémentation au début. Et Hibernate me semble plus documenté sur Internet.
    Dans ingénieur il y a génie. Alors prouvez le !

  9. #9
    Membre expert
    J'utilise Hibernate. La raison ? A défaut d'autre chose... je ne connais les autres que de nom et Hibernate est l'implémentation "imposée" dans mon service.

    Par contre j'évite d'utiliser l'implémentation. Tout est JPA. Je viens de découvrir Spring-Data et QueryDSL et ça a bien plus de valeur ajoutée.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  10. #10
    Membre éclairé
    Indifférent, nous utilisons l'implémentation du serveur JEE cible.

    En cas de conteneur de servlets ou appli stand-alone, nous nous tournons vers Hibernate pour des raisons historiques.

  11. #11
    Expert éminent
    Citation Envoyé par Heimdal Voir le message
    Indifférent, nous utilisons l'implémentation du serveur JEE cible.
    Et ça marche assez bien la portabilité entre les implémentations?

  12. #12
    Expert confirmé
    J'avais constaté une différence au niveau des paramètres nommés des requetes natives.
    J'utilisais avec Hibernate les : (:maVariable) alors qu'avec EclipseLink, il lui faut # (#maVariable).

  13. #13
    Membre émérite
    Personnellement j'utilise EclipseLink en tant que "référence" et pour sa simplicité. Hibernate offre pas mal de choses intéressantes, mais peut cacher des boîtes noires quand on ne le connait pas assez.

  14. #14
    Membre du Club
    Hibernate pour des raisons historiques avant tout.
    L'avantage d'Hibernate est également une documentation très étoffée, notamment sur les forums.

  15. #15
    Membre à l'essai
    Eclipse link
    J'utilise EclipseLink depuis un bout de temps et j'en suis très satisfait
    Je suis en train de tester la version 2.4 avec le driver MongoDB

  16. #16
    Candidat au Club
    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.

  17. #17
    Modérateur

    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
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Responsable Java

    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
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  19. #19
    Membre éclairé
    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.

  20. #20
    Modérateur

    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...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java