Bonjour,
Je travaille avec hibernate et Oracle.

Dans le cadre d'une recherche sur un code particulier (recherche sur tout le code, qui peut faire dans le cas présent de 3 à 6 caractères), j'ai créé un objet de type DetachedCriteria, sur lequel j'applique des restrictions.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
criteria.add(Restrictions.ilike("codeProduit", 
leCritereProduit.getCodeProduit()));
Mon interrogation vient du fait d'observer dans le SQL généré un lower apparaître.

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
Hibernate: 
    select
        produit1_.leProduit as y0_,
        sum(this_.nbProduitsEnStock) as y1_,
        sum(this_.montantVente) as y2_ 
    from
        PRODUIT_PROD this_,
    where
....
        and lower(this_.codeProduit) like ? 
    ....
    group by
        ....
    order by
       ....
Savez-vous d'où cela provient? Je n'ai rien trouvé dans l'API si ce n'est que le ilike est supposé faire une recherche de type case-insensitive...et comme c'est supposé être du case-insensitive, pourquoi restreindre aux résultats qui matcheront en minuscules?

Extrait de la doc Hibernate :
Criterion . ilike : A case-insensitive "like", similar to Postgres ilike operator

Je vous remercie.
Cordialement,
Thomas