Criteria API Facade
Facade interface for preparing JpaSpecification objects, abstracting away complicated API of Criteria Builder.
Key features
- building Specification using simplified interface: List of SearchCriteria objects.
- comparison operators
We can delegate Specification build to a GenericSpecificationBuilder with:
IGenericSpecificationBuilder<Person> builder = new GenericSpecificationBuilder<>();
List<SearchCriteria> criteria = Arrays.asList(
new SearchCriteria("dateOfBirth", "2022-05-05", ">"),
new SearchCriteria("name", "John", "~")
);
Specification<Person> spec = builder.build(criteria);
created Specification can now be passed to JpaRepository, which should return Person entities that meet following:
- dateOfBirth attribute should be younger( greater) than "2022-05-05"
- AND name attribute contains "John" string