@Override public Page<T> findAll(Predicate predicate, Pageable pageable) { Assert.notNull(pageable, "Pageable must not be null!"); final JPQLQuery<?> countQuery = createCountQuery(predicate); JPQLQuery<T> query = querydsl.applyPagination(pageable, createQuery(predicate).select(path)); return PageableExecutionUtils.getPage(query.fetch(), pageable, countQuery::fetchCount); }
/** * Creates a new {@link JPQLQuery} for the given {@link Predicate}. * * @param predicate * @return the Querydsl {@link JPQLQuery}. */ protected JPQLQuery<?> createQuery(Predicate... predicate) { AbstractJPAQuery<?, ?> query = doCreateQuery(getQueryHints().withFetchGraphs(entityManager), predicate); CrudMethodMetadata metadata = getRepositoryMethodMetadata(); if (metadata == null) { return query; } LockModeType type = metadata.getLockModeType(); return type == null ? query : query.setLockMode(type); }
@Override public List<T> findAll(Predicate predicate, OrderSpecifier<?>... orders) { return executeSorted(createQuery(predicate).select(path), orders); }
/** * Creates a new {@link JPQLQuery} count query for the given {@link Predicate}. * * @param predicate, can be {@literal null}. * @return the Querydsl count {@link JPQLQuery}. */ protected JPQLQuery<?> createCountQuery(@Nullable Predicate... predicate) { return doCreateQuery(getQueryHints(), predicate); }
@Override public Iterable<T> findAll( Predicate predicate, EntityGraph entityGraph, OrderSpecifier<?>... orders) { return querydslJpaRepositoryDelegate.findAll(predicate, orders); }
@Override public long count(Predicate predicate) { return createQuery(predicate).fetchCount(); }
@Override protected JPQLQuery<?> createCountQuery(Predicate... predicate) { return CountQueryDetector.proxy(super.createCountQuery(predicate)); } }
/** * Executes the given {@link JPQLQuery} after applying the given {@link OrderSpecifier}s. * * @param query must not be {@literal null}. * @param orders must not be {@literal null}. * @return */ private List<T> executeSorted(JPQLQuery<T> query, OrderSpecifier<?>... orders) { return executeSorted(query, new QSort(orders)); }
@Override public Optional<T> findOne(Predicate predicate) { return querydslJpaRepositoryDelegate.findOne(predicate); }
@Override public boolean exists(Predicate predicate) { return querydslJpaRepositoryDelegate.exists(predicate); } }
@Override public long count(Predicate predicate) { return querydslJpaRepositoryDelegate.count(predicate); }
@Override public Iterable<T> findAll(Predicate predicate, Sort sort, EntityGraph entityGraph) { return querydslJpaRepositoryDelegate.findAll(predicate, sort); }
/** * Creates a new {@link JPQLQuery} count query for the given {@link Predicate}. * * @param predicate, can be {@literal null}. * @return the Querydsl count {@link JPQLQuery}. */ protected JPQLQuery<?> createCountQuery(@Nullable Predicate... predicate) { return doCreateQuery(getQueryHints(), predicate); }
@Override public boolean exists(Predicate predicate) { return createQuery(predicate).fetchCount() > 0; }
/** * Executes the given {@link JPQLQuery} after applying the given {@link OrderSpecifier}s. * * @param query must not be {@literal null}. * @param orders must not be {@literal null}. * @return */ private List<T> executeSorted(JPQLQuery<T> query, OrderSpecifier<?>... orders) { return executeSorted(query, new QSort(orders)); }
@Override public Optional<T> findOne(Predicate predicate, EntityGraph entityGraph) { return querydslJpaRepositoryDelegate.findOne(predicate); }
@Override public List<T> findAll(Predicate predicate, Sort sort) { Assert.notNull(sort, "Sort must not be null!"); return executeSorted(createQuery(predicate).select(path), sort); }
@Override public Page<T> findAll(Predicate predicate, Pageable pageable) { Assert.notNull(pageable, "Pageable must not be null!"); final JPQLQuery<?> countQuery = createCountQuery(predicate); JPQLQuery<T> query = querydsl.applyPagination(pageable, createQuery(predicate).select(path)); return PageableExecutionUtils.getPage(query.fetch(), pageable, countQuery::fetchCount); }
/** * Creates a new {@link JPQLQuery} for the given {@link Predicate}. * * @param predicate * @return the Querydsl {@link JPQLQuery}. */ protected JPQLQuery<?> createQuery(Predicate... predicate) { AbstractJPAQuery<?, ?> query = doCreateQuery(getQueryHints().withFetchGraphs(entityManager), predicate); CrudMethodMetadata metadata = getRepositoryMethodMetadata(); if (metadata == null) { return query; } LockModeType type = metadata.getLockModeType(); return type == null ? query : query.setLockMode(type); }
@Override public Iterable<T> findAll(OrderSpecifier<?>... orders) { return querydslJpaRepositoryDelegate.findAll(orders); }