《criteria的一些示例语句或方法》由会员分享,可在线阅读,更多相关《criteria的一些示例语句或方法(2页珍藏版)》请在金锄头文库上搜索。
1、Criteria的一些语句范例(方法)一、 Criteria的一些基本查询Criteria有一个方法add(“限定条件”),这个方法可以添加限定条件,好得到自己应该要的查询结果;例如:有两个实体类,student和teacher已经有一个Criteria的关于Student类的实例Criteria crit = session. createCriteria (Student.class);1) 在一个班级中要查询姓“王”的学生都有谁,就可以这样:List list = crit.add(Restrictions.like(“name”,”王%”).list();2) 查询年龄在17-20之间
2、的学生:List list = crit.add(Restrictions.between(“age”,new Integer(17),new Integer(20).list();3) 查询没有手机号码的学生:List list = crit.add(Restrictions.isNull(tel).list();4) 查询90后的学生:List list = crit.add(Restrictions.ge(new Date(1990-01-01).list();5) 查询考试分数在前十名的学生(可用于分页查询):List list = crit.addOrder(Order.desc(“
3、grades”).setFirstResult(0).setMaxResult(10).list();6) 查询学生小明的个人信息: crit.add(Restriction.eq(“name”,”小明”).list().iterator().next();7) 查询小明的化学教师的信息:crit.add(Restricrions.eq(“name”,”小明”).createCriteria(“teacher_id”).add(Restrictions.equ(“subject”,”化学”).list().iterator().next();8) 以上都是先创建session根据session
4、得到Criteria的实体对象(即在线查询),下面来看看离线查询,离线查询用的是DetachedCriteria类,DetachedCriteria类使你在一个session范围之外创建一个查询,并且可以使用任意的 Session来执行它。下面写还按照上面的条件,写一个例子吧:DetachedCriteria query = DetachedCriteria.forClass(Student.class).add( Property.forName(name).eq(小明) );Session session = Configuration().configure().buildSession
5、Factory().openSession;Transaction txn = session.beginTransaction();List results = query.getExecutableCriteria(session).setMaxResults(100).list();mit();session.close();二、 常用的一些基本的限定方法Restrictions.eq - equal,等于.Restrictions.allEq - 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq的效果Restrictions.gt -
6、 great-than 大于Restrictions.ge - great-equal = 大于等于Restrictions.lt - less-than, less-equal 对应SQL的between子句Restrictions.like - 对应SQL的LIKE子句Restrictions.in - 对应SQL的in子句Restrictions.and - and 关系Restrictions.or - or 关系Restrictions.isNull - 判断属性是否为空,为空则返回trueRestrictions.isNotNull - 与isNull相反Restrictions.sqlRestriction - SQL限定的查询Order.asc - 根据传入的字段进行升序排序Order.desc - 根据传入的字段进行降序排序MacthMode.EXACT :字符串精确匹配。相当于like valueMathMode.ANYWHERE:字符串在中间匹配.相当于 like %value%MathMode.START:字符串在最前端匹配位置.相当于:like value%MatchMode.END:字符串在最后端匹配.相当于:like %value