Partage
  • Partager sur Facebook
  • Partager sur Twitter

Hibernate VS Spring Data

Du changement dans l'air?

    29 août 2016 à 11:14:15

    Bonjour à tous, 

    Je suis freelance et je viens de démarrer un nouveau projet, pour me faire plaisir, j'ai pris des nouvelles technos ici et la, histoire de découvrir des nouveaux trucs. 
    Dans le nouveau stack j'ai été plutôt surpris par la puissance de Spring JPA et de son côté "magique" par rapport à hibernate qui demande beaucoup plus de conf. 

    J'aimerai en discuter avec vous et avoir des retours d’expérience, car pour ma part, niveau performance (je suis sur un gros projet) on est au même niveau que du hibernate et j'avoue que ce "nouveau joujou" je l'aime bien. 

    C'est une alternative valable par rapport à hibernate selon vous?
    Avez-vous testé les limites? 

    -
    Edité par NicolasPigeot 29 août 2016 à 11:16:21

    • Partager sur Facebook
    • Partager sur Twitter
      29 août 2016 à 11:48:39

      Bonjour.

      Spring Data est une surcouche de Hibernate : ça ne fait "que" (en plus de le framework de base Spring) te fournir toute la configuration et les opérations CRUD de bases de JPA.
      Dès que tu voudras faire des trucs plus compliqués tu seras obligé de le faire toi-même.

      Niveau configuration, voici les différentes couches :

      • Si tu utilises JPA tout seul (sans framework, ni Spring) (couche DAO) : effectivement tu as de la configuration à faire, et du code redondant comme les transactions/CRUD/... à faire à la main.
      • Spring (transverse) : ça t'aide pas mal, notamment au niveau de tout ce qui est transaction (annotation plutôt qu'une gestion manuelle des sessions et transactions) et injection de dépendance (pour l'EntityManager).
      • Spring Boot (transverse) : tu as 0 configuration, enfin juste quelques annotations/fichier minimales à déclarer.
        Du coup tu n'as pas à configurer tout ce qui est dataSource/persistenceUnitManager/transactionManager/... que tu dois faire du tu utilises uniquement Spring.
      • Spring Data (couche DAO) : ça te permet, à partir des noms de méthode, de générer dynamiquement ta requête HQL. Une implémentation de base est fournie pour toutes les opérations CRUD.

      Question performance, tout dépend ton critère et ton besoin.
      Spring Data te génère dynamiquement les requêtes au démarrage de l'application (si je ne dis pas de bêtise), du coup cela revient quasiment au même lors de l'exécution que si tu le faisais toi même.
      Et dans tous les cas Spring Data va te faire gagner un temps considérable en développement.

      Si tu veux aller plus loin, jette un oeil à QueryDSL : ça te génère un méta-modèle en Java, permettant de générer du HQL en Java, profitant ainsi des vérifications du compilateur. Il est supporté par Spring Data.
      Personnellement je trouve l'ensemble Spring Boot/Spring Data/QueryDSL est vraiment parfait pour la partie backoffice d'une projet.

      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
        27 mars 2018 à 12:49:38

        stp

        -
        Edité par d-iks 27 mars 2018 à 12:51:39

        • Partager sur Facebook
        • Partager sur Twitter

        Hibernate VS Spring Data

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown