2015-03-04 27 views
5

Sto tring la query 'non uguale' in hql.Non uguale query in hql non funziona

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

ma non sta funzionando properly.How di scrivere questa query correttamente

Il mio tavolo studente è

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

Definire "non funziona correttamente". Precisamente. Incolla la traccia di stack completa che ottieni e pubblica il codice utilizzato per eseguire quella query. –

risposta

12

Lo so che è tardi, ma se qualcuno sta avendo problemi simili, è possibile utilizzare questo:

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

O questo:

Non sono sicuro di quale sia il problema nell'esempio sopra poiché Samantha non ha fornito alcuna informazione, ma la mia ipotesi è che il uniqueResult() stia causando problemi poiché questa query restituisce un elenco e non un risultato.