假如我们有一个商品表,里面包含了热门商品,我们需要查询出热门商品显示在首页上面,但是热门商品的信息随时都在变动,所以我们不可能自己编写查询语句不停的去查询数据库,这时我们就可以使用离线查询。
下面的代码是使用Hibernate模板实现查询的:
public class ProductDaoImpl extends HibernateDaoSupport implements ProductDao{
//查询热门商品
@Override
public List<Product> findHot() {
//使用离线查询,生成一个针对Product一个类的查询示例
DetachedCriteria criteria=DetachedCriteria.forClass(Product.class);
//查询条件是is_hot=1
criteria.add(Restrictions.eq("is_hot", 1));
//倒序排序输出
criteria.addOrder(Order.desc("pdate"));
//执行查询
List<Product> hlist=(List<Product>) this.getHibernateTemplate().findByCriteria(criteria, 0, 10);
return hlist;
}
findByCriteria中的0代表FirstResult就是从哪里开始查询,10代表MaxResult最大查询记录数。相当于分页查询。