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 :

Plusieurs bases mappées et relations entre elles


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Plusieurs bases mappées et relations entre elles
    Bonjour à tous,

    Je ne pense pas qu'il soit possible de résoudre mon problème mais on ne sait jamais

    Voilà j'ai deux bases de données que je souhaite mapper via Hibernate. J'ai donc configuré mon appli pour pouvoir gérer deux sessions différentes (une par base). Jusque là tout va bien...

    Le problème est que j'ai dans une de mes base une table Users et dans l'autre un table Applis et que j'ai absolument besoin de créer une table de jointure du genre UserHasApplis qui me permet de gérer une relation n:n.

    Donc en gros le problème c'est de mettre en place ce type de relation en utilisant Hibernate.... Quelqu'un sait comment faire??

    Toute aide sera la bienvenue!!

    Merci d'avance

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Et bien je te dirai qu'il suffit de créer la talbe dans l'une des deux bases et de mapper après avec Hibernate de telle sorte que le tout fonctionne.

    Après, il faudra peut etre limiter les accès en base de manière plus restrictive (fetch=select) histoire d'éviter de construire une requete qui va piocher dans deux bases distinctes. Toutefois, je pense que cela reste possible

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Oui c'est ce que je veux faire mais ça suppose que je puisse dans le mapping d'une des tables référencer une table qui est elle mappée dans une autre base...

    Mon problème est plus à ce niveau en fait....

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 61
    Points : 44
    Points
    44
    Par défaut
    Si j'ai bien compris, et en attendant de me confirmer , t'as une jointure entre deux tables qui sont sur deux bases différentes, et tu veux faire un mapping en utilisant Hibernate.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Voilà c'est exactement ça la situation Et donc je me demande comment référencer dans un mapping une table d'une autre base (pour la jointure)...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 61
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par jmartell
    comment référencer dans un mapping une table d'une autre base (pour la jointure)...
    Pour ce qui est des jointures, il ne me semble pas possible de réaliser un mapping hibernate comme cela.

    Le mapping est une représentation d'une base de données. Il ne me semble pas possible de réaliser des jointures entre des tables de deux bases de données distantes.

    Tu peux par contre créer deux modèles mais la jointure devra être faite au niveau applicatif et non pas au niveau sql.
    Je m'explique, pour récupérer un objet à partir d'une base (et les bases annexes) tu devras lancer deux requêtes (via hibernate) : 2 sessions. Et par la suite, faire un traitement applicatif (code Java ) et non SQL.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse! C'est ce que je pensais ça me semblait difficile de définir un mapping dans cette configuration...

    Je vais donc voir si je mets en place cette solution, merci bcp pour vos réponses en tout cas!

  8. #8
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    A voir je dirai ... "join" permet entre autres, d'utiliser l'attribut fetch ... qui peut prendre les valeurs "join|select". Si tu mets select, tu l'oblige a forcer les deux requetes pour construire l'objet. Ainsi il serait surement possible de faire une intervention sur deux base différente malgré le join

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <join
            table="tablename"                        (1)
            schema="owner"                           (2)
            catalog="catalog"                        (3)
            fetch="join|select"                      (4)
            inverse="true|false"                     (5)
            optionnel="true|false">                  (6)
            
            <key ... />
            
            <property ... />
            ...
    </join>
    En jouant sur ces trois paramètres, peut etre est il possible de réaliser ce que tu voudrais

Discussions similaires

  1. Sélection sur la base de la relation entre éléments
    Par lsebe2 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 19/03/2015, 04h42
  2. Réponses: 9
    Dernier message: 29/01/2010, 20h25
  3. [MCD] Entité en relation avec 2 autres entités ayant une relation entre elles
    Par clement.bouillier dans le forum Schéma
    Réponses: 8
    Dernier message: 25/09/2009, 20h20
  4. Relations entre plusieurs tables bloquent un état
    Par aujero dans le forum Access
    Réponses: 5
    Dernier message: 07/02/2006, 12h07
  5. liaison entre plusieurs base de donnee
    Par GMI dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/12/2004, 18h42

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