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 :

composite-id et colonnes nulles


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut composite-id et colonnes nulles
    Bonjour,

    J'ai un petit problème avec une clé composite.
    Il s'avère que une des colonnes de ma clé composite peût être nulle.
    Dans ce cas le problème est le suivant :
    - Lorsque une requête renvoi une ligne de la table correspondant à ma clé composite et que cette ligne contient une colonne de la clé à null, alors la valeur de l'objet récupérer vaut null.

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select pl
    from 
    	ProjectLead pl				
    where
    	pl.deal.clientByClicode = 'IBM'			and
    	pl.deal.year = 2008 and
    	pl.country = null
    ProjectLead est en fait une table constitué uniquement de clés étrangères. En fait ProjectLead représente l'association entre un deal, une personne physique est une country et est à elle seule une clé composite.
    Le fait est que la référence sur la country peut être nulle.
    Lorsque c'est le cas, la requête renvoi null.

    Merci d'avance pour votre aide et surtout n'hésitez pas à me questionner si je ne suis pas trés clair.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Mes souvenirs sont flous, mais si Hibernate est comme SQL, alors pour tester une valeur à null on emploie pas mais une fonction du type is_null ou isnull ou quelque chose comme ça.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    Citation Envoyé par BugFactory
    Mes souvenirs sont flous, mais si Hibernate est comme SQL, alors pour tester une valeur à null on emploie pas mais une fonction du type is_null ou isnull ou quelque chose comme ça.
    Merci pour ta réponse, mais ce n'est pas ce que je demandais, pour ton information voici le code que génère hibernate pour la requête précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    select
      projectlea0_.DEANUMBER as DEANUMBER22_,
      projectlea0_.PHPNUMBER as PHPNUMBER22_,
      projectlea0_.CNTNUMBER as CNTNUMBER22_ 
     from
      dbo.PJL projectlea0_,
      dbo.DEA deal1_ 
     where
      projectlea0_.DEANUMBER=deal1_.DEANUMBER 
      and deal1_.CLICODE='IBM' 
      and deal1_.DEAYEAR=2008 
      and (
       projectlea0_.CNTNUMBER is null
      )
    Deplus en HQL écrire valeur = null est la forme correcte.
    Comme tu peux le constater le code générer est correct, hibernate transforme bien
    en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    projectlea0_.CNTNUMBER is null

  4. #4
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Je ne comprends pas le concept de cle composite egal a null???

    C'est un non-sens. Ou alors tu parles d'une cle etrangere et dans ce cas il ne s'agit pas de composite-id...

  5. #5
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    Citation Envoyé par willoi
    Je ne comprends pas le concept de cle composite egal a null???

    C'est un non-sens. Ou alors tu parles d'une cle etrangere et dans ce cas il ne s'agit pas de composite-id...
    Merci pour ta réponse.
    Je me suis certainement mal exprimé.
    Il s'agît d'une clé composite (composite-id) constitué de trois clé étrangère. Cette clé composite est de la forme :
    (a1,b1,c1).
    Le fait est que dans la base que je traite cette clé peux prendre la forme suivante :
    (0,1,1)
    (1,2,0)
    mais aussi : (0,1,null) et c'est ce dernier cas qui pose problème. Lorsque la clé composite contient une des trois valeurs à null alors le résultat de la requête précédente vaut null.

    Me suis je fait comprendre.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Mmm... Quelle est la réponse de la base de données quand on fait passer cette requête à la main?
    La jointure est-elle utile?

  7. #7
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    Citation Envoyé par BugFactory
    Mmm... Quelle est la réponse de la base de données quand on fait passer cette requête à la main?
    La jointure est-elle utile?
    Merci, mais cette question est hors discussion.

  8. #8
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Citation Envoyé par mitje
    Merci, mais cette question est hors discussion.
    mais si au contraire ca me parait interessant si cette requete te renvoie des donnees ou non.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage des colonnes "Null" en XML
    Par Yorglaa dans le forum SQL
    Réponses: 2
    Dernier message: 07/04/2008, 17h00
  2. ADO et les colonnes NULL
    Par qi130 dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/01/2008, 14h36
  3. Vérifier si colonne nulle dans résultat requete
    Par ouiskie dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/03/2007, 07h45
  4. [2.0] Colonne nulle d'une table - Ajout de DataRow via BindingNavigator
    Par sundjata dans le forum Accès aux données
    Réponses: 5
    Dernier message: 16/11/2006, 03h23
  5. Comment faire un count de colonnes null
    Par claralavraie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/01/2006, 14h13

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