Hibernate Criteria

Criteria cr = session.createCriteria(class);
List<class> list = cr.list();
Iterator<class> 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)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值