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 :

Aide pour requête HQL


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 94
    Par défaut Aide pour requête HQL
    Bonjour, j'utilise Hibernate 3 dans mon code java et je n'arrive pas à exprimer une requête.

    Voici la requête que j'utilise pour le moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select count(uwc) from UimaWorkflowConfiguration as uwc where
    uwc.crConfiguration.componentConfiguration.component = :uc or
    uwc.ciConfiguration.componentConfiguration.component = :uc
    Une entité de type UimaWorkflowConfiguration possède 2 champs:
    -> crConfiguration
    -> ciConfiguration (optionnel)

    Le problème que j'ai surviens lorsque 'uwc.ciConfiguration' est null.
    Dans ma requête l'expression 'uwc.ciConfiguration.componentConfiguration.component = :uc' est évaluée même si 'uwc.ciConfiguration' est null.
    Je souhaiterais que cette expression soit évaluée que si 'uwc.ciConfiguration' n'est pas null.
    J'ai donc essayé ceci mais ça n'a rien changé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select count(uwc) from UimaWorkflowConfiguration as uwc where
    uwc.crConfiguration.componentConfiguration.component = :uc or
    ((uwc.ciConfiguration is not null) and (uwc.ciConfiguration.componentConfiguration.component = :uc))
    Les deux requêtes retournent donc '0' dans le cas ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    uwc.crConfiguration.componentConfiguration.component = :uc
    uwc.ciConfiguration = null
    Ce qui n'est pas bon dans mon cas puisque la requête devrait me compter tous les UimaWorkflowConfiguration ayant 'uwc.crConfiguration.componentConfiguration.component' égal à un composant particulier et le champ 'uwc.ciConfiguration' à null aussi.
    Vous voyez une solution permettant de n'évaluer l'expression ''uwc.ciConfiguration.componentConfiguration.component = :uc" que si "uwc.ciConfiguration" n'est pas null ?

    Merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 94
    Par défaut
    Oups, dsl, j'ai trouvé la solution.

    En fait Hibernate a l'air de générer des jointures pour l'expression 'uwc.ciConfiguration.componentConfiguration.component' qui retournent 'false' dans le cas précis ou 'uwc.ciConfiguration' est null. La solution est de faire un sous-requête de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select count(uwc) from UimaWorkflowConfiguration as uwc where
    uwc.crConfiguration.componentConfiguration.component = :uc or
    :uc in (
        select ciConf.componentConfiguration.component 
        from uwc.ciConfiguration as ciConf
    )
    Merci.

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

Discussions similaires

  1. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01
  2. [SQL] Aide pour requête
    Par portu dans le forum Access
    Réponses: 8
    Dernier message: 23/09/2005, 13h05
  3. Aide pour requête de Tri assez spécial (Oracle)
    Par Chips dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/04/2005, 10h56
  4. [sqlbaseserver]demande de conseils/aides pour requêtes
    Par GéniuS77 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 18/03/2004, 17h27
  5. Aide pour Requête
    Par Guiche dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/11/2003, 20h18

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