在Hibernate中,使用的是hql语句,但是hql并不如sql那么灵活,比如在hql语句中,不能使用limit来限制查询的条数。
例如:
FROM user limit 1
这样查出来的数目不是1条,而是查询出来的条数,所以上面的写法是错误的。
那怎么才能解决这个问题呢?
在 Hibernate 中,setMaxResults(e) 可以指定查询的条数,而 setFirstResult(e) 可以指定开始查询的位置。
例如:
public List<User> getUserList(){
String hql = "FROM user";
Query query = session.createQuery(hql);
// 查询的条数
query.setMaxResults(3);
// 开始查询的位置
query.setFirstResult(1);
List<User> list = query.list();
session.close();
return list;
}
这样就可以解决 limit 在 hql 中不能使用的问题了。