root 获取属性 criteriabuilder 构造查询
1.构建Specification后,获取比较属性(表内属性名)
2.构造查询条件,导入属性精准匹配。
3.返回spec,由dao调用
Specification<Customer> spec = new Specification<Customer>() {
public Predicate toPredicate(Root<Customer> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
//获取比较属性
Path<Object> custName = root.get("custName");
//构造查询条件
Predicate pre = criteriaBuilder.equal(custName, "芭芭拉");//精准匹配
return pre;
}
};
Customer one = customerDao.findOne(spec);
System.out.println(one);
2.多条件查询
criteriaBuilder.equal//精准匹配后
criteriaBuilder.and(p1, p2);//以与的形式拼接多个查询条件
返回specification