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

JPA Java Discussion :

Requête avec JPQL select avec condition des dates


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut Requête avec JPQL select avec condition des dates
    Bonjour,

    je veux faire une requete select avec jpql
    my DAOImpl:

    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
     
    @Transactional
    	public Long sumNb5xx() {
          /*Création d'un objet Query requete calcul somme de classe de réponse 5XX*/
     
    		Query q5xx = em.createQuery("SELECT SUM(h.nb5xx) FROM HttpEntity h WHERE h.host = :host and h.date_http BETWEEN :startDate and :endDate");
    		q5xx.setParameter("host","megaupload.com" );
    		q5xx.setParameter("startDate", "17/03/2014 21:00:00");
    		q5xx.setParameter("endDate", "16/03/2014 21:00:00");
     
     
    		//Exécution et récupération du resultat du requete 
     
    		Long sum5xx = (Long) q5xx.getSingleResult();
    		return sum5xx;
    	}

    l'initialisation des attributes dans ma classe entité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    	@Column(name="HOST")
    	private  String        host;
     
    	@Column(name="DATE_HTTP", insertable=false, updatable=false, columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
    	@Temporal(TemporalType.TIMESTAMP)
    	private   Date         date_http;
    j'ai un erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/kpi] threw exception [Error creating bean with name 'httpMB': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Parameter value [17/03/2014 21:00:00] did not match expected type [java.util.Date (n/a)]] with root cause
    java.lang.IllegalArgumentException: Parameter value [17/03/2014 21:00:00] did not match expected type [java.util.Date (n/a)]
    merci d'avance pour ton aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Ton setParameter attend une date en deuxième argument, pas une chaîne de caractères.

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut
    merci fr1man
    je sais qu'il ne doit pas éter une chaine de caractéres
    comment le faire alos
    je serais reconnaissante si tu peux m'expliquer

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Il te faut construire un objet date à partir de ta chaîne de caractères, en utilisant la classe SimpleDateFormat et sa méthode parse(chaîne).
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
    Date d = sdf.parse(taChaine);
    Code à adapter, notamment le pattern de date à vérifier, et gérer les exceptions.

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut
    merci pour tes explications
    et si je veux que ma requete soit dynamique les variables seront saisies par l'end user à travers une page web il choisit avec calendrier la date
    comment j'indique que c'est une date à ma requete
    est ce que je dois faire tt une classe qui traite la date
    et pour ma requete où setParamétre

    pouvez vous m'aider et merci bcp

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ben oui, c'est à toi de convertir quelque part la String que tu reçois du client web via request.getParameter() en un java.util.Date.

Discussions similaires

  1. select avec autre select en condition
    Par ifsera dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/11/2012, 22h23
  2. Comment écrire un SELECT avec 2 ou 3 conditions apres le WHERE ?
    Par pro.dotnet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/02/2009, 22h01
  3. [WD9] Requête de type SELECT avec une formule mathémathique
    Par jo_la_pasteque dans le forum WinDev
    Réponses: 2
    Dernier message: 22/04/2008, 12h42
  4. Graphique avec plage de données contenant des dates / heures
    Par ArthurO0O dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/08/2007, 21h13
  5. Réponses: 1
    Dernier message: 25/05/2007, 22h31

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