Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序

2014-11-24 08:36:43 · 作者: · 浏览: 0
分页:
其实标准查询的分页很简单,在Criteria中提供了两个方法,setFirstResult方法和setMaxResults,一个是数据的开始位置0表示第一条记录,一个是返回的记录数。

Java代码
public void searchByPropertys() {
Session session = this.getSession();
Criteria crit = session.createCriteria(Conft.class);
crit.setFirstResult(0);
crit.setMaxResults(10);
List list = crit.list();
for(Conft conft : list){
System.out.println(conft.getId());
}
}

这样会返回 数据库前十条记录!

返回一条记录:
Criteria接口的uniqueResult方法返回一个Object对象,如果没有查到数据则返回null。
Java代码
public void searchByPropertys() {
Session session = this.getSession();
Criteria crit = session.createCriteria(Conft.class);
crit.add(Restrictions.eq("id", 2)); // =
Conft conft = (Conft)crit.uniqueResult();
System.out.println(conft.getId());
}

如果调用时返回的不是一条记录,会爆出异常!

排序:
Oder对象的asc和desc静态方法能满足这个需求
Java代码
public void searchByPropertys() {
Session session = this.getSession();
Criteria crit = session.createCriteria(Conft.class);
crit.addOrder(Order.desc("id"));
List list = crit.list();
for(Conft conft : list){
System.out.println(conft.getId());
}
}
作者:dyllove98