有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java组织。冬眠例外SQLGrammarException:无法从搜索查询中提取结果集并返回匹配的记录

我试图根据搜索查询从数据库返回一个不同的记录。这是我的尝试

@SuppressWarnings("unchecked")
    @Override
    public List<Employee> getAllEmployees(String employeeName) { 
        String query = "SELECT e. FROM Employees e WHERE e.name like '%"+ employeeName +"%'";
        List<Object[]> employeeObjects = hibernateUtil.fetchAll(query);
        List<Employee> employees = new ArrayList<Employee>();
        for(Object[] employeeObject: employeeObjects) {
            Employee employee = new Employee();
            long id = ((BigInteger) employeeObject[0]).longValue();         
            int age = (int) employeeObject[1];
            String name = (String) employeeObject[2];
            float salary = (float) employeeObject[3];
            employee.setId(id);
            employee.setName(name);
            employee.setAge(age);
            employee.setSalary(salary);
            employees.add(employee);
        }
        System.out.println(employees);
        return employees;
    }

在上面的尝试中,我有这个错误

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM Employees e WHERE e.name like '%john%'' at line 1
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

请说明如何修改查询以选择唯一记录


共 (1) 个答案

  1. # 1 楼答案

    “从员工e中选择e,其中e.name如”=>;有一个点(.)选择e之后。它应该是SELECT DISTINCT e.name FROM EMPLOYEE