IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

JPA Java Discussion :

(JPA/Hibernate) ou (JPA/TopLink)


Sujet :

JPA Java

  1. #1
    Membre confirmé
    Profil pro
    Président
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Président

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Par défaut (JPA/Hibernate) ou (JPA/TopLink)
    Bonjour,

    Je veux choisir l'une des implémentations soit (JPA/Hibernate) ou (JPA/TopLink) pour mon application.

    Mais, je veux savoir quelle est la meilleure implémentation?
    Quelle sont les avantage et les inconvénients?
    Y a t-il de lien sur le net qui donne cette comparaison?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2008
    Messages : 33
    Par défaut
    Bonjour,
    Ce lien peut t'intéresser :comparatif framework de persistance
    Sinon, je ne suis pas certain que toplink soit open source, alors que hibernate l'est, si ce critère entre dans ton choix.

  3. #3
    Membre confirmé
    Profil pro
    Président
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Président

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Par défaut
    Ce lien peut t'intéresser :comparatif framework de persistance
    Sinon, je ne suis pas certain que toplink soit open source, alors que hibernate l'est, si ce critère entre dans ton choix.
    Merci, pour le lien mais cette article n'est pas trop détaillé.
    L’un de critère de choix que soit open source

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Difficile de trancher, les 2 produits sont très bien...

    C'est pour une application autonome (client lourd) ou une application web ?

    L'idéal, c'est de s'affranchir de l'implémentation et d'opter pour les EJB3 avec l'une des 2 implémentations (indifféremment).
    L'autre avantage est que ça fonctionnera pour une application web ou un client lourd... mais ça oblige à avoir un serveur d'application...

    Soit tu vises un serveur JBoss et il vaudrait mieux utiliser Hibernate,
    soit tu vises un serveur Glassfish et là, c'est Toplink...

    Il y a plus de documentation ou de topics pour Hibernate, ça peut être un argument...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    Président
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Président

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Par défaut
    Bonjour,

    Je veux l’utiliser pour une application web.
    Tu m’as proposé deux serveurs WEB. Mais, je veux l’utiliser avec Tomcat.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tomcat n'a pas de conteneur d'EJB, tu devras donc utiliser le mode "natif",
    ou installer un conteneur light sur Tomcat (comme OpenEJB par exemple)

    Personnellement, j'utilise Hibernate avec ou sans EJB depuis 2 ans environ et j'en suis très content...
    Je te conseille les EJB3, ils sont vraiment bien (autant avant la version 3 c'était plutôt la galère, autant là, c'est génial)

    A toi de voir...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Il y a DataNucleus Access Platform qui implante JPA, qui est sous licence Apache 2 et qui est très bon aussi.

  8. #8
    Membre Expert
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Par défaut
    Petites précisions:
    Toplink Essentials est bien open source (et fournit par défaut dans plusieurs serveurs d'applications dont GlassFish).

    Si tu souhaites utiliser Hibernate JPA avec GlassFish, rien de plus simple, il se trouve sur l'update center de GlassFish. Environ 50% des utilisateurs de GlassFish utilisent Hibernate, l'autre moitié utilise Toplink.

    On notera que Toplink devient EclipseLink et que ce dernier est l'implémentation de référence de JPA 2.0 et intégré (là aussi entre autres) dans GlassFish v3

  9. #9
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    J'ai utilisé les 2. Il y a quelques différences de comportement, malgré l'implémentation du standard JPA.

    Si tu choisis Toplink Essentials, je te conseille de prendre la version intégrée à Glassfish. J'ai eu quelques surprises en utilisant d'autres versions, dont celle référencée chez Oracle.

    Je crois me rappeler que la principale surprise était au niveau des requêtes polymorphes, qui ne me ramenaient pas forcément les résultats complets.

  10. #10
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Citation Envoyé par hasalex Voir le message
    J'ai utilisé les 2. Il y a quelques différences de comportement, malgré l'implémentation du standard JPA.
    Oui, j'ai remarqué ça aussi en essayant de changer d'implémentation sur un projet JPA deja fonctionnel avec TopLink (application StandAlone).

    Il m'est apparu que l'implémentation JPA/Hibernate est plus stricte quand au schéma objet. Mais pas seulement ça.

    JPA/Hibernate n'accepte pas un shéma de ce genre (ne faites pas attention au sens du code, c'est juste un exemple fait à la va vite):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Class Parent
    @OneToMany(fetch=FetchType.EAGER)
    private List<Enfant> enfants;
    ...
     
    Class Enfant
    @OneToMany(fetch=FetchType.EAGER)
    private List<Jouet> jouets
    Cet exemple ne marche pas avec JPA/Hibernate au contraire de JPA/TopLink, et il semble que je ne suis pas le seul à avoir eu ce problème.

    La solution semble être de changer les List en Set. Mais pourquoi cette différence entre deux implémentations qui se base sur la même couche d'abstraction JPA.

    Edit: Ce problème existe aussi dans Hibernate sans JPA.

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je veux bien faire abstraction en partie de l'exemple mais là, il ne faut pas pousser, avec les éléments que tu donnes, aucune implémentation de JPA ne peux fonctionner...
    Le problème est où exactement, dans l'utilisation de List ou dans le mapping ?
    Parce que j'ai utilisé des List et ça fonctionne très bien... et pour le mapping, il n'y a pas assez d'informations...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Je veux bien faire abstraction en partie de l'exemple mais là, il ne faut pas pousser, avec les éléments que tu donnes, aucune implémentation de JPA ne peux fonctionner...
    Oui, j'ai voulu éviter d'encombrer le message inutilement. Mon code fonctionne très bien sous JPA/Toplink, là n'est pas le problème.

    Citation Envoyé par OButterlin Voir le message
    Le problème est où exactement, dans l'utilisation de List ou dans le mapping
    Non, il n'est pas dans l'utilisation des List. Voilà à quoi ressemble le problème. Comme décrit dans l'article, il existe 3 solutions dont le remplacement des List par des Set.
    J'avoue ne pas avoir bien compris le problème des Simultaneously Fetch Multiple Bags.

Discussions similaires

  1. jpa hibernate eclipse 3.2.2
    Par lamnaourS dans le forum JPA
    Réponses: 5
    Dernier message: 15/07/2009, 17h07
  2. hibernate et JPA toplink
    Par ib1606 dans le forum Persistance des données
    Réponses: 5
    Dernier message: 25/06/2008, 10h48
  3. [JPA / Hibernate] Cascade qui ne cascade pas !
    Par dazz_x dans le forum Persistance des données
    Réponses: 1
    Dernier message: 11/09/2007, 13h35
  4. JPA / Hibernate.
    Par Ho(c)ine. dans le forum Persistance des données
    Réponses: 2
    Dernier message: 23/08/2007, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo