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 :

Problème avec la requete hibernate : utilisation d'un Union


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut Problème avec la requete hibernate : utilisation d'un Union
    Bonjour,
    J'utilise une requête contenant un Union. J'ai un problème pour définir les paramètres
    Voici ma requete :
    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
     
     
    			if (monthParam != 0){
    				qString.append("SELECT jour.jour, personne.nom, jour.debutHoraire, jour.finHoraire, jour.typeHoraire, jour.dureeTravail, jour.dateJour,"); 
    				qString.append(" jour.absence.idAbsence,  jour.dureeAfaire, personne.horaireContrat, jour.indexJour, jour.dureeFormation, jour.dureeDelegation, "); 
    				qString.append(" jour.dureeMedecineTravail, jour.dureeReunionSV, jour.dateJourDate"); 
    				qString.append(" From Personne as personne, Semaine as semaine, Perssemainecompt as perssemainecompt, Jour as jour, Ecartannee as ecartannee "); 
    				qString.append(" Where personne.idPersonne =  perssemainecompt.personne.idPersonne and perssemainecompt.jour.idJour = jour.idJour"); 
    				qString.append(" and semaine.idSemaine = jour.semaine.idSemaine "); 
    				qString.append(" and semaine.type ='Réalisé' "); 
    				qString.append(" and personne.idPersonne = ? "); 
    				qString.append(" and jour.dateJour = ? "); 
    				qString.append(" group by perssemainecompt.jour.idJour"); 
    				qString.append(" Union "); 
    			}
     
     
    			qString.append(" SELECT jour.jour, personne.nom, jour.debutHoraire, jour.finHoraire, jour.typeHoraire, jour.dureeTravail, jour.dateJour,"); 
    			qString.append(" jour.absence.idAbsence,  jour.dureeAfaire, personne.horaireContrat, jour.indexJour, jour.dureeFormation, jour.dureeDelegation, "); 
    			qString.append(" jour.dureeMedecineTravail, jour.dureeReunionSV, jour.dateJourDate"); 
    			qString.append(" From Personne as personne, Semaine as semaine, Perssemainecompt as perssemainecompt, Jour as jour, Ecartannee as ecartannee "); 
    			qString.append(" Where personne.idPersonne =  perssemainecompt.personne.idPersonne and perssemainecompt.jour.idJour = jour.idJour"); 
    			qString.append(" and semaine.idSemaine = jour.semaine.idSemaine "); 
    			qString.append(" and semaine.type ='Réalisé' "); 
    			qString.append(" and perssemainecompt.jour.idJour = jour.idJour 	"); 	
    			qString.append(" and semaine.type ='Réalisé' "); 
    			qString.append(" and personne.idPersonne = ?  "); 
     
     
    			if (monthParam != 0){
    				qString.append(" and jour.mois = ? "); 
    				qString.append(" And jour.annee = ? ");
    				qString.append(" group by perssemainecompt.jour.idJour");
    				qString.append(" ORDER BY dateJourDate");
    			}
     
    			if (debutPeriode != null){
    				qString.append(" AND STR_TO_DATE(jour.dateJour,'%d-%m-%Y') BETWEEN STR_TO_DATE('"+debutPeriode+"','%d-%m-%Y') ");
    				qString.append(" AND STR_TO_DATE('"+finPeriode+"','%d-%m-%Y') ");
    				qString.append(" group by jour.dateJour");
    				qString.append(" ORDER BY str_to_date(jour.dateJour,'%d-%m-%Y') ASC ");
     
    			}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                    Iterator results;
    		if ((monthParam != 0)&&(debutPeriode == null)){
    			Object[] params = {idPersonne, dateDernierJour, idPersonne, Integer.parseInt(Month), yearParam };
    			results = this.getHibernateTemplate().find(qString.toString(), params).iterator();
    		}else if(debutPeriode != null){
    			Object[] params = {idPersonne};
    			results = this.getHibernateTemplate().find(qString.toString(), params).iterator();
     
    		}
    Lorsque je ne renseigne pas le mois (monthParam ==0), la requête me renvoie des donnée, lorsque le mois est renseigné, j'ai le message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ordinal parameter mismatch
    Pourriez vous m'aider s'il vous plait ? Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Tu as résolu ton problème ?
    Tu ne te serais pas trompé de forum ? Je ne reconnais pas ta syntaxe ? me semblerais plus être du Java que du .Net ton code...

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  3. #3
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut
    Je n'ai pas posté mon message au bon endroit mais je n'ai toujours pas trouvé de solution😢

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    HQL ne supporte pas UNION --> https://hibernate.atlassian.net/browse/HHH-1050

    A+.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/12/2016, 09h59
  2. problème avec une requete utilisant LIMIT
    Par kow_Ced dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/08/2006, 16h01
  3. [MySQL] problème avec 2 requetes pour 1 même tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/11/2005, 12h50
  4. [debutant]Problème avec une requete ....
    Par MichMich29 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/07/2005, 17h19
  5. problème avec ma requete contenant un "in" :
    Par seb78000 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/07/2005, 16h38

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