2015-03-04 13 views
5

Tôi đang truy vấn truy vấn 'không bằng' trong hql.Truy vấn không bằng nhau trong hql không hoạt động

@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(); 
    } 

nhưng nó không làm việc properly.How để viết truy vấn này một cách chính xác

bảng sinh viên của tôi là

+-------------+--------------+------+-----+---------+----------------+ 
| 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

Xác định "nó không hoạt động đúng". Đúng. Dán dấu vết ngăn xếp hoàn chỉnh mà bạn nhận được và đăng mã được sử dụng để thực hiện truy vấn đó. –

Trả lời

12

Tôi biết đó là muộn nhưng nếu có ai là có vấn đề tương tự, bạn có thể sử dụng này:

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

Hoặc điều này:

List<Student> result = session.createQuery ("from Student where year!=:year").setParameter("year", year).list(); 

Tôi không chắc vấn đề ở trên ví dụ như Samantha không cung cấp bất kỳ thông tin nào, nhưng tôi đoán là uniqueResult() đang gây ra sự cố vì truy vấn này trả về một danh sách chứ không phải một kết quả.

Các vấn đề liên quan