Criteria接口
Criteria查询通过面相对向的设计,将数据查询条件封装为一个对象。在hibernate执行时会把criteria指定的查询恢复相应的sql语句。
条件查询
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("uid",2));//add用来设置条件值,add里面实现条件
List<User> list =criteria.list();
常用的方法
排序查询
addOrder()方法
Criteria criteria = session.createCriteria(User.class);
criteria.addOrder(Order.desc("uid"));//根据uid降排列
分页查询跟hql分页一样(详情看上节)
createCriteria()方法
实现联合查询
Criteria criteria = session.createCriteria(User.class);
.add(Restrictions.eq("name","jack"));
.createCriteria("role");
.add(Restrictions.eq("rolename","admin"));
setProjecttion()方法
主要完成聚合查询和分组查询
rowCount行数 , sum 相加, avg 平均, max 最大 ,min 最小 等
Criteria criteria = session.createCriteria(User.class);
.setProjecttion(Projections.projectionList() .add( Projections.rowCount() )
.add( Projections.avg("age") )
)
uniqueResult()方法
得到唯一查询结果
Criteria criteria = session.createCriteria(User.class);
.add(Restrictions.idEq("2"))
.uniqueResult();