Problème OR dans requete hibernate
Bonjour,
je développe actuellement une application qui utilise Hibernate pour l'accès à la BDD. Les requêtes effectuées sont générées dynamiquement par l'application en fonction des choix de l'utilisateurs, cependant, lorsque l'application génére une requête avec un "OR" le navigateur charge indéfiniment et je n'obtiens pas le résultat de ma requête alors que lorsqu'il n'y a que des clauses AND tout se passe bien...
par exemple la requête suivante passe très bien :
Code:
1 2 3 4 5 6 7
|
SELECT personne.mail, pays.libelle
FROM Personne personne, Pays pays, Langue langue
WHERE langue.libelle LIKE '%chinois%'
AND pays.id = personne.idPays
AND langue.id = personne.idLangue
AND langue.id = personne.idLangue; |
alors que pour celle-ci je n'obtiens jamais le résultat (sans pour autant obtenir d'erreurs :s)
Code:
1 2 3 4 5 6 7 8
|
SELECT personne.mail, pays.libelle
FROM Personne personne, Pays pays, Langue langue
WHERE langue.libelle LIKE '%chinois%'
OR langue.libelle LIKE '%russe%'
AND pays.id = personne.idPays
AND langue.id = personne.idLangue
AND langue.id = personne.idLangue; |
De plus la requête Hibernate est bien générée. Cette requete est la suivante :
Code:
1 2
|
Hibernate: select personne0_.MAIL as col_0_0_, pays1_.LIBELLE_PAYS as col_1_0_ from ANRQT_PERSONNE personne0_, ANRQT_PAYS pays1_, ANRQT_LANGUE langue2_ where langue2_.LIBELLE_LANGUE like '%chinois%' or (langue2_.LIBELLE_LANGUE like '%russe%') and pays1_.ID_PAYS=personne0_.ID_PAYS and langue2_.ID_LANGUE=personne0_.ID_LANGUE and langue2_.ID_LANGUE=personne0_.ID_LANGUE |
Y'a t-il une astuce pour placer une clause OR dans hibernate ou quelquechose que je fais mal?
merci d'avance