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

Hibernate Java Discussion :

Hibernate façade !


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Par défaut Hibernate façade !
    Bonjour à Tous,

    J'utilise dans mon projet hibernate avec les DAO, POJO..
    Bon, à chaque table est associé un POJO / DAO

    Parcontre, j'ai besoin dans plusieurs requettes d'acceder plusieurs tables à la fois. A chaque fois, Je me trouve contraint à ajouter une fonction au plus proche DAO. exemple :
    J'ai 3 tables : Produit, Client et commandes.
    Supposons que je veut lister les produits commandés par un client x.
    Je vais donc ajouter une fonction de recherche. Je l'ajouterai dans le DAO Produit; or le produit est logiquement spécialisé dans l'accés à la table produit uniquement.

    Je pense à ajouter une Classe exemple ProjetDAO, qui elle possède des reférences à tous les autres DAO. ainsi, je concentre mes accés via cette classe (bon qque chose de 'façade') dans laquelle je peus appeler les autres DAO ou definir d'autres fonctions comme celle évoquée.

    Ma question :
    Est ce cela engendrera des problèmes de performances?
    Est ce que je vais instancier cette classe à chaque requette ?
    Et si j'utilise Spring; est ce que cette classe peut être un sigleton ?

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut
    OUi tu peux utiliser une faca injecté via spring en singleton. Cest ce qu'on a fait sur un projet j2ee pour une entreprise groupe & cela facilite beaucoup la lecture de tout en plus de créer une couche d'indépendance supplémentaire. L'un des intéret de la facade est de limiter les appels réseaux aussi.

    Pour la performance, supposons que tu as une facade A avec 4 daos, spring peut utiliser une instanciation paresseuse il me semble cest a dire n'instancier tes daos internes que si nécessaire.

    AU pire, tu peux le faire toit meme en faisant a chaque fois avant utilisation dans par exemple un getListeProduit(criteria c):
    IF (xDao==null) daoX=newDao

  3. #3
    Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Par défaut
    Merci fredop,

    Mon projet utilise (struts2 - Spring - Hibernate)

    Ce que je veux exactement est que j'injecte pas autant de DAO dans mes actions struts2. parcontre je ne vais injecter que la façade ainsi j'ai toutes les fonctions d'accès aux données seront devant moi :
    - les DAO via : ((ProjectHibernateFacade) projectInterfaceFacade).getXxxDAO().xxxMethodeDAcces();
    - les fonctions d'accès utilisant des requettes complexes : projectInterfaceFacade.xxxMethodeDAcces();

    donc façade qui contient les DAO (non pas et façade et DAO)

    J'ai testé et ça marche bien pour (un seul utilisateur en localhost)

    Le nombre des DAO est important (32).
    le nombre des utilisateurs au même temps peut être important (100 .. 500).
    Quelques méthodes lancent des requettes lourdes (en fait qques tables comptent environ 5 milles enregistrements)

    La question (plus clairement) :
    - est ce que le fait d'utiliser spring (d'ou les singletons) ne génere -t- il pas un goulot d'étranglement pour cette façade - qui est aussi singleton !- ?
    - est il plus judicieux de déclarer cette façade un prototype ?

    ---
    Une autre solution est d'utiliser les namedQuery mais le souci persistera -avoir +ieurs DAO dans l'action Struts2 - et aussi à chaque fois je suis contraint de me rappeler où est ce que j'ai définit la namedQuery.

    Merci,

Discussions similaires

  1. [Hibernate] Problemes de connexion d'un sous domaine
    Par sylvain_neus dans le forum Hibernate
    Réponses: 15
    Dernier message: 09/05/2006, 10h49
  2. [Stratégie]JDBC ou Hibernate
    Par yanis97 dans le forum JDBC
    Réponses: 3
    Dernier message: 03/12/2004, 16h23
  3. [Plugin] Hibernate
    Par speedster dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/08/2004, 11h01
  4. Fonctionnement d'Hibernate
    Par coyot dans le forum Hibernate
    Réponses: 12
    Dernier message: 19/05/2004, 19h10
  5. [JDO]Hibernate : Mapping d'un champ auto-incrémenté
    Par brice.antoine dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/04/2004, 10h36

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