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

Spring Web Java Discussion :

Recherche par mot clé


Sujet :

Spring Web Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2013
    Messages : 81
    Points : 34
    Points
    34
    Par défaut Recherche par mot clé
    Salut,
    je veux recherche une marchandise dont le nom contient un mot clé,mais le problème que le table toujours reste vide n'affiche rien

    j'ai la méthode getMarchandiseParMC qui permet de consulter marchandise dont le nom contient un mot clé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Override
        public List<Marchandise> getMarchandiseParMC(String mc) {
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            Query req = session.createQuery("select m from com.ult.dao.Marchandise m where m.nom LIKE '%' || mc || '%'");
            return req.list();
        }

    formulaire:
    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
     
    <form action="cherche.do" method="get">
                Mot clé: <input type="text" name="motCle" value="${mc}" />
                <input type="submit" value="Ok" />
            </form>
            <table border="1">
                <tr>
                    <td>numero</td>
                    <td>poids</td>
                    <td>volume</td>
                    <td>nom</td>
                    <td>cargaison</td>
                </tr>
                <c:forEach items="${mar}" var="m">
                    <tr>
                        <td>${m.numero}</td>
                        <td>${m.poids}</td>
                        <td>${m.volume}</td>
                        <td>${m.nom}</td>
                        <td>${m.cargaison.reference}</td>
                    </tr>
                </c:forEach>
            </table>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @RequestMapping(value = "/cherche")
        public String chercher(@RequestParam(value = "motCle") String mc, Model model) {
            model.addAttribute("motCle", mc);
            model.addAttribute("mar", metier.getMarchandiseParMC(mc));
            return "transport";
        }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    C'est exactement le même problème avec mc que avec c dans cette discussion.

    En plus, personnellement, je ferais la concaténation avec % dans une variable java, au lieu de dans la requête.

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public List<Marchandise> getMarchandiseParMC(String mc) {
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            Query req = session.createQuery("select m from com.ult.dao.Marchandise m where m.nom LIKE :filter");
            req.setParameter("filter", "%"+mc+"%");
            return req.list();
        }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2013
    Messages : 81
    Points : 34
    Points
    34
    Par défaut
    il m'affiche

    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
     
    type Rapport d''exception
     
    message Request processing failed; nested exception is org.hibernate.QueryParameterException: could not locate named parameter [filter]
     
    description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
     
    exception
     
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.QueryParameterException: could not locate named parameter [filter]
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
     
    cause mère
     
    org.hibernate.QueryParameterException: could not locate named parameter [filter]
    	org.hibernate.engine.query.ParameterMetadata.getNamedParameterDescriptor(ParameterMetadata.java:99)
    	org.hibernate.engine.query.ParameterMetadata.getNamedParameterExpectedType(ParameterMetadata.java:105)
    	org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:437)
    	org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:407)
    	com.ult.dao.TransportDaoImpl.getMarchandiseParMC(TransportDaoImpl.java:69)
    	com.ult.metier.TransportMetierImpl.getMarchandiseParMC(TransportMetierImpl.java:41)
    	com.ult.web.TransportContoller.chercher(TransportContoller.java:34)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	java.lang.reflect.Method.invoke(Method.java:483)
    	org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
    	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Essaye avec req.setString("filter", "%"+mc+"%") au lieu de req.setParameter("filter", "%"+mc+"%").
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Février 2013
    Messages : 81
    Points : 34
    Points
    34
    Par défaut
    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
     
    type Rapport d''exception
     
    message Request processing failed; nested exception is java.lang.IllegalArgumentException: Parameter filter does not exist as a named parameter in [select m from com.ult.dao.Marchandise m where m.nom LIKE :filter]
     
    description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
     
    exception
     
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Parameter filter does not exist as a named parameter in [select m from com.ult.dao.Marchandise m where m.nom LIKE :filter]
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
     
    cause mère
     
    java.lang.IllegalArgumentException: Parameter filter does not exist as a named parameter in [select m from com.ult.dao.Marchandise m where m.nom LIKE :filter]
    	org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:380)
    	org.hibernate.impl.AbstractQueryImpl.setString(AbstractQueryImpl.java:667)
    	com.ult.dao.TransportDaoImpl.getMarchandiseParMC(TransportDaoImpl.java:68)
    	com.ult.metier.TransportMetierImpl.getMarchandiseParMC(TransportMetierImpl.java:41)
    	com.ult.web.TransportContoller.chercher(TransportContoller.java:34)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	java.lang.reflect.Method.invoke(Method.java:483)
    	org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
    	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

Discussions similaires

  1. [MySQL] recherche par mots clés
    Par spartan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/02/2006, 16h11
  2. [Tableaux] Moteur de recherche par mot clés
    Par Nee dans le forum Langage
    Réponses: 4
    Dernier message: 20/01/2006, 11h30
  3. [Base de documents] Upload et Recherche par mots clé
    Par yascov dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 30/12/2005, 18h59
  4. recherche par mot clé
    Par seb59dk dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 14h26
  5. Recherche par mots clés
    Par legillou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2005, 10h56

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