-1

有人可以帮我摆脱这种情况吗?

UtilisateurController.java

package com.elfayq.stock.controllers;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.elfayq.stock.entities.Utilisateur;
import com.elfayq.stock.services.IUtilisateurService;

@Controller
@RequestMapping(value = "/utilisateur")
public class UtilisateurController {
    
    
    
    @Autowired
    private IUtilisateurService utilisateurService;
    
    @RequestMapping(value = "/")
    public String utilisateur(Model model) {
        
        List<Utilisateur> utilisateurs = utilisateurService.selectAll();

        
        if (utilisateurs == null) {
            
            utilisateurs = new ArrayList<Utilisateur>();
            
        }
       model.addAttribute("utilisateurs",utilisateurs);
        
        
        return "utilisateur/utilisateur";
        
        
    }
    
    

}

GenericDaoImpl.java

package com.elfayq.stock.dao.impl;
import com.elfayq.stock.dao.IGenericDao;


import java.lang.reflect.Type;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import java.lang.reflect.ParameterizedType;


@SuppressWarnings("unchecked")
public class GenericDaoImpl<E> implements IGenericDao<E> {
   
    @PersistenceContext
    EntityManager em;
    
    private Class<E> type;
    
    public Class<E> getType() {
        return type;
    }
    
    public GenericDaoImpl() {
        Type t =getClass().getGenericSuperclass();
        ParameterizedType pt=(ParameterizedType) t;
        type=(Class<E>) pt.getActualTypeArguments()[0];
    }

    
    @Override
    public E save(E entity) {
        em.persist(entity);
        return entity;
    }

    @Override
    public E update(E entity) {
        em.merge(entity);
        return entity;
    }

    @Override
    public List<E> selectAll() {
        Query query=em.createQuery("select t from " + type.getSimpleName() + "t");
        return query.getResultList();
        
        }

    @Override
    public List<E> selectAll(String sortField, String field) {
        Query query=em.createQuery("select t from " + type.getSimpleName() + "t order by" + sortField + "" + field);
        return query.getResultList();
    }
    
    @Override
    public E getById(Long id) {
        return em.find(type, id);
    }

    @Override
    public void remove(Long id) {
        E tab=em.getReference(type, id);
        em.remove(tab);
        
    }

    @Override
    public E findOne(String paramName, Object paramValue) {
        Query query=em.createQuery("select t from " + type.getSimpleName() + "t where " + paramName + " =:x ");
        query.setParameter(paramName, paramValue);
        return query.getResultList().size() > 0 ? (E) query.getResultList().get(0) : null;
        
        /*
         if(query.getResultList().size() > 0)
         {
         return (E) query.getResultList().get(0);
         }
         else
         return null;
         * */
    }

    @Override
    public E findOne(String[] paramName, Object[] paramValue) {
        
        if(paramName.length != paramValue.length)
        {
            return null;
        }
        
        String requete="select t from" + type.getSimpleName() + "e where ";
        int longeur = paramName.length;
        
        for(int i=0; i<longeur; i++)
        {
            requete+="e." + paramName[i] + " =: x" + i;
            
            if(i+1< longeur) 
            {
                requete+= " and ";
            }
        }
        
        Query query=em.createQuery(requete);
        for(int i=0;i<longeur;i++)
        {
            query.setParameter("x"+i, paramValue[i]);
        }
        
        return query.getResultList().size() > 0 ? (E) query.getResultList().get(0) : null;
    }



    @Override
    public int findCountBy(String paramName, String paramValue) {
        Query query=em.createQuery("select t from " +type.getSimpleName() + " t where " + paramName + ":= x ");
        query.setParameter(paramName, paramValue);
        return query.getResultList().size() > 0 ? ((Long) query.getSingleResult()).intValue() : 0;
    }
    
    

    
}

这给出了一个错误:

État HTTP 500 – Erreur interne du serverur

类型报告 d'exception

消息请求处理失败;嵌套异常是 java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Utilisateurt is not mapped [select t from Utilisateurt]

描述 Le serveur a rencontré une erreur interne qui l'a empêché de Satisfaire la requête。

例外

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Utilisateurt is not mapped [select t from Utilisateurt] org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894) org.springframework .web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache .tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

在此处输入图像描述

谢谢你。

4

1 回答 1

1

似乎答案就在那里 - 你的一个查询确实select t from utilisateurt如此,所以你的 type.getSimpleName() 似乎在最后返回了 utilisateurt ,我猜你的表被称为不同

于 2020-07-19T00:44:04.937 回答