Sam*_*mar 8 java hibernate hql
我在hql中使用'not equal'查询.
@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();
}
Run Code Online (Sandbox Code Playgroud)
但它无法正常工作.如何正确编写此查询
我的学生表是
+-------------+--------------+------+-----+---------+----------------+
| 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 | |
+-------------+--------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
lsr*_*rom 17
我知道现在已经晚了但是如果有人遇到类似的问题,你可以使用这个:
Criteria criteria = session.createCriteria(Student.class);
criteria.add(Restrictions.ne("year", year));
List<Student> result = criteria.list();
Run Code Online (Sandbox Code Playgroud)
或这个:
List<Student> result = session.createQuery ("from Student where year!=:year").setParameter("year", year).list();
Run Code Online (Sandbox Code Playgroud)
我不确定上面例子中的问题是什么,因为Samantha没有提供任何信息,但是我的猜测是uniqueResult()因为这个查询返回一个列表而不是一个结果.
| 归档时间: |
|
| 查看次数: |
25478 次 |
| 最近记录: |