diff --git a/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java b/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java index 77c25305f..9f0c5e7fd 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java @@ -91,21 +91,28 @@ public class Querydsl { /** * Creates the {@link JPQLQuery} instance based on the configured {@link EntityManager}. * + * @param paths must not be {@literal null}. * @return */ public AbstractJPAQuery> createQuery(EntityPath... paths) { + + Assert.notNull(paths, "Paths must not be null!"); + return createQuery().from(paths); } /** * Applies the given {@link Pageable} to the given {@link JPQLQuery}. * - * @param pageable + * @param pageable must not be {@literal null}. * @param query must not be {@literal null}. * @return the Querydsl {@link JPQLQuery}. */ public JPQLQuery applyPagination(Pageable pageable, JPQLQuery query) { + Assert.notNull(pageable, "Pageable must not be null!"); + Assert.notNull(query, "JPQLQuery must not be null!"); + if (pageable.isUnpaged()) { return query; } @@ -119,12 +126,15 @@ public class Querydsl { /** * Applies sorting to the given {@link JPQLQuery}. * - * @param sort + * @param sort must not be {@literal null}. * @param query must not be {@literal null}. * @return the Querydsl {@link JPQLQuery} */ public JPQLQuery applySorting(Sort sort, JPQLQuery query) { + Assert.notNull(sort, "Sort must not be null!"); + Assert.notNull(query, "Query must not be null!"); + if (sort.isUnsorted()) { return query; } diff --git a/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java b/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java index 22ee28511..89fc4b6e6 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/QuerydslJpaPredicateExecutor.java @@ -87,6 +87,8 @@ public class QuerydslJpaPredicateExecutor implements QuerydslPredicateExecuto @Override public Optional findOne(Predicate predicate) { + Assert.notNull(predicate, "Predicate must not be null!"); + try { return Optional.ofNullable(createQuery(predicate).select(path).fetchOne()); } catch (NonUniqueResultException ex) { @@ -100,6 +102,9 @@ public class QuerydslJpaPredicateExecutor implements QuerydslPredicateExecuto */ @Override public List findAll(Predicate predicate) { + + Assert.notNull(predicate, "Predicate must not be null!"); + return createQuery(predicate).select(path).fetch(); } @@ -109,6 +114,10 @@ public class QuerydslJpaPredicateExecutor implements QuerydslPredicateExecuto */ @Override public List findAll(Predicate predicate, OrderSpecifier... orders) { + + Assert.notNull(predicate, "Predicate must not be null!"); + Assert.notNull(orders, "Order specifiers must not be null!"); + return executeSorted(createQuery(predicate).select(path), orders); } @@ -119,6 +128,7 @@ public class QuerydslJpaPredicateExecutor implements QuerydslPredicateExecuto @Override public List findAll(Predicate predicate, Sort sort) { + Assert.notNull(predicate, "Predicate must not be null!"); Assert.notNull(sort, "Sort must not be null!"); return executeSorted(createQuery(predicate).select(path), sort); @@ -143,6 +153,7 @@ public class QuerydslJpaPredicateExecutor implements QuerydslPredicateExecuto @Override public Page findAll(Predicate predicate, Pageable pageable) { + Assert.notNull(predicate, "Predicate must not be null!"); Assert.notNull(pageable, "Pageable must not be null!"); final JPQLQuery countQuery = createCountQuery(predicate); @@ -177,8 +188,9 @@ public class QuerydslJpaPredicateExecutor implements QuerydslPredicateExecuto */ protected JPQLQuery createQuery(Predicate... predicate) { - AbstractJPAQuery query = doCreateQuery(getQueryHints().withFetchGraphs(entityManager), predicate); + Assert.notNull(predicate, "Predicate must not be null!"); + AbstractJPAQuery query = doCreateQuery(getQueryHints().withFetchGraphs(entityManager), predicate); CrudMethodMetadata metadata = getRepositoryMethodMetadata(); if (metadata == null) { @@ -221,7 +233,8 @@ public class QuerydslJpaPredicateExecutor implements QuerydslPredicateExecuto * @return */ private QueryHints getQueryHintsForCount() { - return metadata == null ? QueryHints.NoHints.INSTANCE : DefaultQueryHints.of(entityInformation, metadata).forCounts(); + return metadata == null ? QueryHints.NoHints.INSTANCE + : DefaultQueryHints.of(entityInformation, metadata).forCounts(); } private AbstractJPAQuery doCreateQuery(QueryHints hints, @Nullable Predicate... predicate) {