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 :

Restrictions.ilike et sql généré


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 95
    Par défaut Restrictions.ilike et sql généré
    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

  2. #2
    Invité de passage
    Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 1
    Par défaut probleme ilike
    Je crois que cela est du à que tu utilise ilike qui est case-insensitive comme dit la doc, et plus précisement elle transforme le tout en minuscules.
    Si tu veux faire une recherche case-sensitive utilise plutot le like

    par exemple :
    criteria.add(Restrictions.like("name", "%toto%"))

    Bn courage

  3. #3
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Citation Envoyé par Wise_Sherkaan Voir le message
    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?
    Ce que tu ne vois pas, c'est que la bind variable (le "?") a elle été passée en minuscule côté Java. Donc ça fonctionne comme il se doit

Discussions similaires

  1. Comment recupérer le code SQL généré par Hibernate !
    Par nebisse dans le forum Hibernate
    Réponses: 14
    Dernier message: 21/08/2008, 23h56
  2. Réponses: 6
    Dernier message: 04/06/2008, 13h27
  3. importer fichier .SQL généré par mysql vers MSSqlServer 2005
    Par Themacleod1980 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2007, 15h49
  4. Code SQL généré différent d'attendu
    Par MxPx_23 dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/09/2006, 10h26
  5. [Hibernate3] Anomalies dans le SQL généré
    Par mauvais_karma dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/08/2005, 09h58

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