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 :

Requête SQL Native à mettre en HQL ou Criteria [HQL]


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 33
    Points : 18
    Points
    18
    Par défaut Requête SQL Native à mettre en HQL ou Criteria
    Bonjour,

    J'ai réussi à pondre une requête qui fait exactement ce que je veux mais c'est en SQL natif et vu la tête de la requête je me demande si elle était transposable en HQL ou Criteria.
    La requête :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    WITH prerequete
    				    AS  (SELECT  *
    				            FROM TABLE1  table1
    				            WHERE mp.commentaire not like '%Un texte'
    				            AND table1.type = 0
    				            AND   NOT EXISTS
    				                    (SELECT  NULL
    				                        FROM    TABLE2 table2
    				                        WHERE   table1.id  = table2.id))
    				SELECT max(id) AS id
    				       , identite
    				       , datesaisie
    				       , min(datedebut) AS datedebut
    				       , DATE_SAISIE_FIN
    				       , max(datefin) AS datefin
    				       , AI
    				       , max(puissance) keep(dense_rank first ORDER BY datefin DESC) AS puissance
    				       , typesaisie
    				       , idcause
    				       , traitement
    				       , commentaire       
    				    FROM prerequete p
    				    where p.typesaisie in (1,3,4)
    				GROUP BY identite
    				       , datesaisie
    				       , typesaisie
    				       , DATE_SAISIE_FIN
    				       , AI
    				       , idcause
    				       , traitement
    				       , commentaire
    				UNION
    				SELECT id AS id
    				       , identite
    				       , datesaisie
    				       , datedebut AS datedebut
    				       , DATE_SAISIE_FIN
    				       , datefin AS datefin
    				       , AI
    				       , puissance AS puissance
    				       , typesaisie
    				       , idcause
    				       , traitement
    				       , commentaire       
    				    FROM prerequete p
    				    where p.typesaisie not in (1,3,4)or p.typesaisie is null
    				ORDER BY dateSaisie DESC, dateDebut DESC
    En gros ça me ramène une liste d'objet que je peux convertir par la suite mais je préférerais récupérer une liste d'objet de type TABLE1 qui contient un objet référencé par "identite". Pour le moment j'ai juste un nombre "identite" et je suis obligé de refaire une requête à chaque fois pour récupérer l'entité correspondante donc je fais plusieurs accès à la base et ma requête efficace d'origine perd tout son intérêt.

    Est-ce possible à traduire pour hibernate à votre avis ?

    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Pour info je l'ai fait en SQL natif et j'ai ensuite utilisé un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setResultTransformer(Transformers.aliasToBean(
    avec les alias qui vont bien dans la requête sql.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Je serai reconnaissant si vous m'indiquer comment faire.
    J'ai le même problème et j'arrive pas à transformer mes requete sql en hql
    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008] Requête SQL pour mettre à plat une table
    Par abbepierre94 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 11/02/2014, 13h04
  2. Réponses: 1
    Dernier message: 21/01/2011, 15h17
  3. [Hibernate 2]Requête SQL native sur plusieurs tables
    Par Giovanny Temgoua dans le forum Hibernate
    Réponses: 0
    Dernier message: 06/04/2010, 16h10
  4. Réponses: 2
    Dernier message: 24/08/2006, 11h02
  5. Différence de résultats entre requêtes SQL et Criteria
    Par titoudemtl dans le forum Hibernate
    Réponses: 3
    Dernier message: 07/08/2006, 09h30

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