like
criteriaBuilder.like(root.get(字段名),"%"+params);
in
CriteriaBuilder.In<String> in = criteriaBuilder.in(root.get(param)) ;
for (int i = 0; i < params.size(), i++){
in.value(params.get(i));
}
expression.add(in);
distinct根据某个字段去重
criteriaQuery.select(root.get(需要去重的字段名));
criteriaQuery.dinstinct(true);
比较日期
criteriaBuilder.lessThanOrEqualTo(Root);
criteriaBuilder.greaterThanOrEqualTo(Root,param);
查询条数
criterial.select(criteriaBuilder.count(root));
Query query = session.createQuery(criteria);
query.getSingleResult().intValue();
动态拼接查询条件
Predicate predicate = criteriaBuilder.conjunction();
List<Expression<Boolean>> expressions = predicate.getExpressions();
expressions.add(criteriaBuilder.equal(Root,param));
expressions.add(criteriaBuilder.equal(Root,param));
criteriaQuery.where(predicate);
主键为联合主键
root.get().get()
Predicate[] 多个过滤条件
List<Predicate> predicatesList = new ArrayList<Predicate>();
predicatesList.add(.....Pridicate....)
criteriaQuery.where(predicatesList.toArray(new Predicate[predicatesList.size()]));