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 :

Hibernate API Criteria


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut Hibernate API Criteria
    Bonjour,

    J'essaye de trouver la solution du problème ci-dessous :

    Table Personne
    id
    nom
    prenom
    anneeNaissance


    Est-il possible de générer la requête SQL suivant en passant par l'api criteria ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from (select * from personne where anneeNaissance in  (?, ?, ?) where prenom = ?

    Merci pour vos réponses.

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour,

    Il serait plus simple de faire ta sélection avec une seule requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, prenom, anneeNaissance FROM personne WHERE anneeNaissance = ? AND prenom = ?
    Attention, il est préférable de lister les champs dans la requête plutôt que d'utiliser une *.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    Effectivement, c'est une solution mais le problème est plus compliqué.

    Je m'explique :

    Je travaille sur une application où la table personne va contenir plus de 8 millions d'entrées en 2 ans (la table possède également des clés étrangères).

    Nous avons effectué un benchmark qui nous a montré que notre requête initialise est peu performante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, prenom, anneeNaissance FROM personne WHERE anneeNaissance = in (?, ?, ?) AND prenom = ?
    Le DBA nous propose de mettre un index sur la colonne dateDeNaissance et d'utiliser la requête ci-dessous : (il connaît peu hibernate. Il exige uniquement que sa requête soit exécutée au niveau du SGBD)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from (select * from personne where anneeNaissance in (?, ?, ?)) where prenom = ?
    Comment faire pour avoir un tel résultat en passant par l'api Criteria ? (nous ne souhaitons pas tous casser niveau applicatif pour écrire la requête en HQL)

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    A mon avis tu seras obligé de faire une requete JDBC native. C'est tjrs le pb avec les DBA ils n'aiment pas les framework de persistance

Discussions similaires

  1. Hibernate et API Criteria
    Par kariel dans le forum Hibernate
    Réponses: 0
    Dernier message: 28/05/2014, 13h41
  2. [Hibernate 3] [Criteria] Faire une jointure avec Criteria
    Par bouchette63 dans le forum Hibernate
    Réponses: 30
    Dernier message: 07/06/2010, 17h54
  3. API Criteria, charger une jointure, problème bizarre
    Par TiMiD dans le forum Hibernate
    Réponses: 2
    Dernier message: 17/10/2007, 17h06
  4. [Hibernate][ehcache][criteria]Requête ignore le cache
    Par BugFactory dans le forum Hibernate
    Réponses: 1
    Dernier message: 25/07/2006, 10h53
  5. [Hibernate] Requete basé sur l'API Criteria
    Par K-Kaï dans le forum Hibernate
    Réponses: 16
    Dernier message: 16/06/2006, 16h09

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