2015-03-04 3 views
5

Я обрабатываю запрос «не равный» в hql.Не равный запрос в hql не работает

@Override 
    public Student findStudentsByYear(String year) { 
     String queryString = "from Student where year<>:year "; 
     Query query = sessionFactory.getCurrentSession().createQuery(queryString);   
     query.setParameter("year", year); 
     return (Student)query.uniqueResult(); 
    } 

, но он не работает properly.How написать этот запрос правильно

Мой студент стол

+-------------+--------------+------+-----+---------+----------------+ 
| Field  | Type   | Null | Key | Default | Extra   | 
+-------------+--------------+------+-----+---------+----------------+ 
| studentId | bigint(20) | NO | PRI | NULL | auto_increment | 
| course  | varchar(255) | YES |  | NULL |    | 
| dob   | varchar(255) | YES |  | NULL |    | 
| email  | varchar(255) | YES |  | NULL |    | 
| faculty  | varchar(255) | YES |  | NULL |    | 
| firstName | varchar(255) | YES |  | NULL |    | 
| gender  | int(11)  | YES |  | NULL |    | 
| homeAddress | varchar(255) | YES |  | NULL |    | 
| lastName | varchar(255) | YES |  | NULL |    | 
| linkedIn | varchar(255) | YES |  | NULL |    | 
| university | varchar(255) | YES |  | NULL |    | 
| year  | varchar(255) | YES |  | NULL |    | 
| user_userId | bigint(20) | YES | MUL | NULL |    | 
+-------------+--------------+------+-----+---------+----------------+ 
+0

Определите, что «это не работает должным образом». Точно. Вставьте полную трассировку стека, которую вы получите, и разместите код, используемый для выполнения этого запроса. –

ответ

12

Я знаю, что уже поздно, но если кто-то, имеющий подобную проблему, вы можете использовать это:

Criteria criteria = session.createCriteria(Student.class); 
criteria.add(Restrictions.ne("year", year)); 
List<Student> result = criteria.list(); 

Или это:

Я не уверен, что проблема в приведенном выше примере, поскольку Саманта не предоставила никакой информации о том, что когда-либо было, но я предполагаю, что uniqueResult() вызывает проблемы, потому что этот запрос возвращает список, а не один результат.

Смежные вопросы