2016-07-06 39 views
0

我試圖根據搜索查詢從數據庫中返回一個不同的記錄。這是我嘗試org.hibernate.exception.SQLGrammarException:無法提取ResultSet - 從搜索查詢中返回匹配記錄

@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) 

請我如何修改我的查詢選擇一個唯一的記錄

回答

0

「選擇e。從僱員e WHERE e.name like「=>在SELECT e後面有一個點(。)。它應該是SELECT DISTINCT e.name FROM Employees ....

+0

你在那裏。? – Blaze

相關問題