Interface JPAFinder.QueryEnhancement<TT>
- Type Parameters:
TT- Entity Type
- All Superinterfaces:
BiConsumer<JPAFinder.CriteriaBuilderAndRoot<TT>, CriteriaQuery<?>>
public static interface JPAFinder.QueryEnhancement<TT>
extends BiConsumer<JPAFinder.CriteriaBuilderAndRoot<TT>, CriteriaQuery<?>>
Convenience interface for use with
JPAFinder.CriteriaBuilderAndRoot and JPAFinder.QueryCriteria
and is able to compose many enhanced query lambdas together
public record CountAndList(long count, List<UserEntity> list) { };
public CountAndList countAndList(String userName) {
// add "where fullName = 'userName'" clause
QueryEnhancement<UserEntity> enhancement = (partial, criteria) -> criteria
.where(partial.builder().equal(partial.root()
.get(UserEntity_.fullName), userName));
return new CountAndList(jpaFinder.count(enhancement::accept),
jpaFinder.findAll(enhancement::accept)
.setHint(QueryHints.BATCH_TYPE, BatchFetchType.IN)
.getResultList());
}
- Author:
- lprimak
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidaccept(JPAFinder.CountQueryCriteria<TT> criteria) Convenience method reference for use inJPAFinder.count(Consumer)parametersdefault voidaccept(JPAFinder.QueryCriteria<TT> criteria) Convenience method reference for use inJPAFinder.findAll(Consumer)andJPAFinder.findRange(long, long, Consumer)parametersdefault JPAFinder.QueryEnhancement<TT> andThen(JPAFinder.QueryEnhancement<TT> after) Allows for composition of enhancements via method referencesMethods inherited from interface BiConsumer
accept, andThen
-
Method Details
-
accept
Convenience method reference for use inJPAFinder.findAll(Consumer)andJPAFinder.findRange(long, long, Consumer)parameters- Parameters:
criteria-
-
accept
Convenience method reference for use inJPAFinder.count(Consumer)parameters- Parameters:
criteria-
-
andThen
Allows for composition of enhancements via method references- Parameters:
after-- Returns:
- combination lambda
- See Also:
-