Hibernate Criteria

Criteria cr = session.createCriteria(class);
List list = cr.list();
Iterator iter = list.iterator();
while(iter.hasNext()) {
    ....
}
调用Criteria对象的add(Restrictions.[static method]) 
添加查询条件,同sql语句中的and


Restrictions.gt(字段名, 值)
添加条件字段是否大于指定值


Restrictions.lt(字段名, 值)
添加条件字段是否小于指定值


Restrictions.or(Restrictions.[static method], Restrictions.[static method])
添加或者条件,同SQL语句中的or


常见限定条件
Restrictions.eq 等于
Restrictions.gt 大于
Restrictions.ge 大于等于
Restrictions.lt 小于
Restrictions.le 小于等于
Restrictions.between 对应SQL的BETWEEN子句
Restrictions.like 对应SQL的LIKE子句
Restrictions.in 对应SQL的in子句
Restrictions.and and关系
Restrictions.or or关系


排序方式
调用Criteria的addOrder方法
addOrder(Order.asc("字段名")) 升序
addOrder(Order.desc("字段名")) 降序


统计操作
调用Criteria的setProjection()方法
setProjection(Projections.avg("字段名")) 平均值
setProjection(Projections.rowCount("字段名")) 统计
setProjection(Projections.count("字段名")) 统计
setProjection(Projections.max("字段名")) 最大值
setProjection(Projections.min("字段名")) 最小值
setProjection(Projections.countDistinct("字段名")) 去重复统计
setProjection(Projections.groupProperty("字段名")) 分组


多表关联查询
调用Criteria的createAlias("属性名", "别名") 方法加入从表
调用Criteria的setFatchMode("属性名", FetchMode.JOIN) 设置抓取模式


多字段分组
创建 ProjectionList对象
ProjectionList projectionList = Projections.projectionList();
添加分组字段
projectionList.add(Projections.groupProperty("字段名"))
...
调用Criteria的setProjection(projectionList)方法添加内容




调用Criteria对象的add(Example.create(实例对象)) 通过对象已知的属性值查询对象


Criteria随session结束而消亡,DatachedCriteria可生成公共条件集
DatachedCriteria datachedCriteria = DatachedCriteria.forClass(实例对象类.class)
添加逻辑datachedCriteria.add(...) ...


Criteria criteria = datachedCriteria.getExecutableCriteria(session)



你可能感兴趣的:(Hibernate3)