JPA Criteria API with multiple parameters

前端 未结 5 1766
礼貌的吻别
礼貌的吻别 2020-11-30 22:39

I need to make a search method that uses the JPA Criteria API with multiple parameters. Now the problem is that not every parameter is required. So some could be null, and t

5条回答
  •  野性不改
    2020-11-30 23:05

    A simple solution for Spring, using lambda expressions:

    Specification specification = (root, query, builder) -> {
        List predicates = new ArrayList<>();
    
        // like
        predicates.add(builder.like(root.get("name"), "%test%"));
    
        // equal
        predicates.add(builder.equal(root.get("parent_id"), 99L);
    
    
        // AND all predicates
        return builder.and(predicates.toArray(new Predicate[0]));
    };
    
    repository.findAll(specification);
    

提交回复
热议问题