Hibernate中QBC查询
QBC:Query by Criteria 标准化查询.使用到的接口: Criteria、Critertion(条件)、Order(排序)、Projection(映射) 以及DetachedCriteria(离线)
获取Criteria对象
//从session中获取Criteria接口对象 Criteria criteria = session.createCriteria(User.class);设置查询的条件
//Critertion 条件查询 利用Restrictions实现 Criterion ilike = Restrictions.ilike("name", "%"); Criterion between = Restrictions.between("id", 1, 2); //添加查询的条件:下面二选一 Criterion and = Restrictions.and(ilike,between);//可以一次添加多个 Criteria criteria2 = criteria.add(and); //Criteria criteria3 = criteria.add(between).add(ilike);对查询进行排序:
// order criteria.addOrder(org.hibernate.criterion.Order.desc("name"));映射查询:
// 映射 projection 常用的函数sun,avg,max,min,count等 Criteria criteria4 = criteria.setProjection(Projections.count("id"));离线查询:
// 离线查询 可以随意添加到任意一个session当中 DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class); // 将离线查询加载到需要加载的session上 Criteria criteria1 = detachedCriteria.getExecutableCriteria(session);