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 :

[HQL]Comment faire une jointure sur des champs de type différent ?


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Points : 28
    Points
    28
    Par défaut [HQL]Comment faire une jointure sur des champs de type différent ?
    Bonjour,

    J'ai dans mon application deux table :
    UTILISATEUR : dont la clé primaire est de type numérique.
    ROLE : dont un champs est une clé étrangère vers la table utilisateur. mais ce champs n'est pas de type numérique, il est de type CHAR(n).

    J'ai bien essayé d'utiliser un Type personnalisé (étendre UserType) qui me permet de récupérer un numérique à partir d'une chaine de caractère, mais cela ne suffit pas.
    Au niveau du sql généré par hibernate, il y a toujours une incompatibilité de types lors d'un inner join :
    par exemple :
    UTILISATEUR inner JOIN ROLE on id = userid
    car id et userid sont de types différents.

    Est il possible de régler ou contourner ce problème avec hibernate ?


    Merci d'avance.

  2. #2
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Mon impression à moi est que cela est une erreur de conception DB.

    Une question, l'erreur est-elle du coté d'hibernate ou de JDBC.
    - Si ton erreur est du coté JDBC, c'est que la base de données refuse la jointure donc rien à faire
    - Si ton erreur est du coté hibernate, peut être en utilisant pour les deux classe le même type de propriété (par exemple des String), hibernate fera lui même une parse ... Enfin, cela ne me semble pas garantie.

Discussions similaires

  1. Réponses: 22
    Dernier message: 10/07/2011, 17h49
  2. Comment faire une jointure sur toutes mes tables
    Par vevere dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/03/2011, 14h09
  3. Réponses: 1
    Dernier message: 24/07/2009, 15h40
  4. Réponses: 3
    Dernier message: 11/10/2008, 13h32
  5. faire une jointure sur des clés différentes
    Par phpaide dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/09/2006, 10h16

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