分页:

其实标准查询的分页很简单,在Criteria中提供了两个方法,setFirstResult方法和setMaxResults,一个是数据的开始位置0表示第一条记录,一个是返回的记录数。

 

Java代码   Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序 _ Hibernate的查询 标准(Cri

  1. public void searchByPropertys() {  

  2.     Session session = this.getSession();  

  3.     Criteria crit = session.createCriteria(Conft.class);  

  4.     crit.setFirstResult(0);  

  5.     crit.setMaxResults(10);  

  6.     List<Conft> list = crit.list();  

  7.     for(Conft conft : list){  

  8.         System.out.println(conft.getId());  

  9.     }  

  10. }  

 

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

 

返回一条记录:

Criteria接口的uniqueResult方法返回一个Object对象,如果没有查到数据则返回null。

Java代码   Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序 _ Hibernate的查询 标准(Cri

  1. public void searchByPropertys() {  

  2.     Session session = this.getSession();  

  3.     Criteria crit = session.createCriteria(Conft.class);  

  4.     crit.add(Restrictions.eq("id"2)); // =   

  5.     Conft conft = (Conft)crit.uniqueResult();  

  6.     System.out.println(conft.getId());  

  7. }  

 

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

 

排序:

Oder对象的asc和desc静态方法能满足这个需求

Java代码   Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序 _ Hibernate的查询 标准(Cri

  1. public void searchByPropertys() {  

  2.     Session session = this.getSession();  

  3.     Criteria crit = session.createCriteria(Conft.class);  

  4.     crit.addOrder(Order.desc("id"));  

  5.     List<Conft> list = crit.list();  

  6.     for(Conft conft : list){  

  7.         System.out.println(conft.getId());  

  8.     }