QBC常用限定方法(懒得写了,直接从别处复制过来)
Restrictions.eq --> equal,等于.
Restrictions.allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq的效果
Restrictions.gt --> great-than > 大于
Restrictions.ge --> great-equal >= 大于等于
Restrictions.lt --> less-than, < 小于
Restrictions.le --> less-equal <= 小于等于
Restrictions.between --> 对应SQL的between子句
Restrictions.like --> 对应SQL的LIKE子句
Restrictions.in --> 对应SQL的in子句
Restrictions.and --> and 关系
Restrictions.or --> or 关系
Restrictions.isNull --> 判断属性是否为空,为空则返回true
Restrictions.isNotNull --> 与isNull相反
Restrictions.sqlRestriction --> SQL限定的查询
Order.asc --> 根据传入的字段进行升序排序
Order.desc --> 根据传入的字段进行降序排序
MatchMode.EXACT --> 字符串精确匹配.相当于"like 'value'"
MatchMode.ANYWHERE --> 字符串在中间匹配.相当于"like '%value%'"
MatchMode.START --> 字符串在最前面的位置.相当于"like 'value%'"
MatchMode.END --> 字符串在最后面的位置.相当于"like '%value'"
Restrictions的用法就是基于上面那几个方法,故此也不多解释了,以后想到什么在加把
得到某个字段的sum值,
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
ProjectionList pList = Projections.projectionList();
pList.add(Projections.sum("age").as("age"));
dc.setProjection(pList);
dc.add(Restrictions.eq("babyQuestionRecord.id", "402881e65070377f0150703d4dac0002"));
List<BabyQuestionDetail> list=UserDAO.list(dc, 0, 0);
Integer age= Integer.parseInt(list.get(0).toString());