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.