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 void
accept
(JPAFinder.CountQueryCriteria<TT> criteria) Convenience method reference for use inJPAFinder.count(Consumer)
parametersdefault void
accept
(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 java.util.function.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:
-