59 votes

hiberner ou éclipses?

Il semble qu'EclipseLink ait été choisi par sun comme implémentation de référence de JPA 2.0, mais je constate que de nombreuses personnes continuent à utiliser le mode veille prolongée ...

Je n'ai aucune expérience avec aucun d'entre eux, alors je me demande lequel choisir pour un nouveau projet ...

J'aimerais connaître les avantages / inconvénients de chacun ...

Merci beaucoup

ps: btw, et cela fait partie de la réponse, il y a 3636 questions sur stackoverflow sur hibernate, et seulement 68 sur eclipselink ...

45voto

Pascal Thivent Points 295221

Je voudrais savoir les avantages et inconvénients de chacun

  • Les deux entièrement en charge la JSR-317 (JPA 2.0) maintenant.
  • Hibernate est certainement le fournisseur JPA avec la plus grande communauté et est largement utilisé/testé.
  • EclipseLink nécessite un bytecode d'amélioration de l'étape (alors que Hibernate utilise des proxies dynamiques).
  • Je suis sûr qu'ils ont tous deux des fonctionnalités que les autres n'ont pas d'équivalent.
  • Les deux ont des extensions spécifiques que vous pouvez trouver intéressant si vous n'avez pas l'esprit de rendre votre application moins portable.
  • Vous devriez banc de votre application avec deux d'entre eux.

38voto

cletus Points 276888

Hibernate est de plus en plus populaire. Il sera plus facile pour vous de trouver l'aide et des réponses à cause de cela. Hibernate est venu bien avant de JPA.

EclipseLink est, comme vous le dites, l'implémentation de référence de JPA 2.0. Ce qui compte pour quelque chose. Aussi, il semble que EclipseLink peut faire des choses utiles que Hibernate a pas d'équivalent (lot de requêtes viennent à l'esprit).

J'ai utilisé EclipseLink tout à fait un peu et l'a trouvé pour être très bon, avec une meilleure documentation de mise en veille prolongée.

En fin de compte cependant, il n'y a pas de mauvais choix ici.

28voto

Mirko Klemm Points 829

Comme je suis un "TopLink" utilisateur depuis 2001, je suis peut-être un peu biaisé (eclipseLink est basé sur un open-source version de TopLink).

À l'époque, dans les jours précédant la JPA, nous avons utilisé les deux Hibernate et TopLink dans différents projets, et déjà à l'époque, TopLink a été de loin la plus riche, mieux documenté, plus performants, plus avancé et plus propre ORM solution. Ils avaient déjà un des critères de la requête de l'API à l'époque, et sophistiqué de mise en cache et multi-niveaux des options. Hibernate a toujours eu la sensation d'une approche minimale. Nous l'avons utilisé parfois dans de petits projets, parce que c'était simple, c'était l'open source et disponible gratuitement, ce qui TopLink n'était pas à ce point.

Alors que Hibernate a certainement avancé maintenant que les deux sont la mise en œuvre de l'APC de la norme, je pense toujours que ça juste pour dire que eclipseLink est une architecture beaucoup plus propre, et plus avancée dans le respect de la JPA standard (ce qui est assez juste, car il est l'implémentation de référence). En fait, de nombreux concepts dans JPA semblent avoir été inspirés par TopLink, et non pas l'inverse, alors que Hibernate a dû subir des modifications importantes afin de soutenir la JPA et presque perdue dans la JDO/JPA confusion. Cela a conduit à des problèmes de stabilité et une certaine adaptation d'impédance entre l'original "Hibernate Façon" de faire les choses et de ce qui est spécifié dans l'accord de projet conjoint.

Je ne vois pas pourquoi le bytecode de traitement est un con pour eclipseLink, ça marche assez bien et permet aux développeurs d'utiliser eclipseLink vraiment de manière transparente. Et si vous ne l'aimez pas, vous pouvez simplement désactiver.

EclipseLink offre également une charge d'options supplémentaires au-delà de la spécification JPA, qui peut ou ne peut pas devenir une partie de la spec dans les versions ultérieures. Pensez à déclarative de l'exposition des entités JPA comme JAX-RS webservices restful etc.

La communauté Hibernate peut-être encore plus grande que eclipseLink, juste parce que eclipseLink n'est pas dans l'open source, aussi longtemps que la mise en veille, mais la documentation et le soutien de la communauté est assez bon pour eclipseLink ainsi, et il est croissante. Et eclipseLink prédécesseur a été prouvé plus d'une décennie dans une large gamme de niveau de l'entreprise pour les projets Java.

-5voto

Archimedes Trajano Points 2729

Vous devez utiliser le fournisseur JPA fourni avec votre conteneur cible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X