@Test
public void testSpec(){
// 匿名内部类
/*
自定义查询条件
1.实现Specification接口(提供泛型)
2.实现方法(构造产品条件)
3.借助方法中的两个参数
root:获取需要查询的对象属性
CriteriaBuilder:构造查询条件的,内部封装了很多查询条件(模糊匹配等)
案例:根据客户名称查询
查询条件:
1.查询方式(cb)
2.比较的属性名称(root)
*/
Specification<Customer> spec = new Specification<Customer>() {
public Predicate toPredicate(
Root<Customer> root,
CriteriaQuery<?> criteriaQuery,
CriteriaBuilder criteriaBuilder) {
// 获取比较的属性(path对象)
Path<Object> custName = root.get("custName");
/*Path<Object> custAddress = root.get("custAddress");
//条件
Predicate p1 = criteriaBuilder.equal(custName, "keke");//精准匹配
Predicate p2= criteriaB