List of usage examples for org.springframework.data.domain Slice hasNext
boolean hasNext();
From source file:com.afmobi.mongodb.repository.PersonRepositoryIntegrationTests.java
@Test public void findsSliceOfPersons() { Slice<Person> result = repository.findByAgeGreaterThan(40, new PageRequest(0, 2, Direction.DESC, "firstname")); assertThat(result.hasNext(), is(true)); }
From source file:com.netflix.genie.web.jpa.services.JpaJobPersistenceServiceImpl.java
/** * {@inheritDoc}/*from w ww .j a v a 2s .c o m*/ */ @Override public long deleteBatchOfJobsCreatedBeforeDate(@NotNull final Instant date, @Min(1) final int maxDeleted, @Min(1) final int pageSize) { log.info("Attempting to delete batch of jobs (at most {}) created before {} ms from epoch", maxDeleted, date.toEpochMilli()); long jobsDeleted = 0; long totalAttemptedDeletions = 0; final Pageable page = PageRequest.of(0, pageSize); Slice<IdProjection> idProjections; do { idProjections = this.jobRepository.findByCreatedBefore(date, page); if (idProjections.hasContent()) { final List<Long> ids = idProjections.getContent().stream().map(IdProjection::getId) .collect(Collectors.toList()); final long toBeDeleted = ids.size(); totalAttemptedDeletions += toBeDeleted; log.debug("Attempting to delete {} rows from jobs...", toBeDeleted); final long deletedJobs = this.jobRepository.deleteByIdIn(ids); log.debug("Successfully deleted {} rows from jobs...", deletedJobs); if (deletedJobs != toBeDeleted) { log.error("Deleted {} job records but expected to delete {}", deletedJobs, toBeDeleted); } jobsDeleted += deletedJobs; } } while (idProjections.hasNext() && totalAttemptedDeletions < maxDeleted); log.info("Deleted a chunk of {} job records: {} job", totalAttemptedDeletions, jobsDeleted); return totalAttemptedDeletions; }
From source file:com.netflix.genie.core.jpa.services.JpaJobPersistenceServiceImpl.java
/** * {@inheritDoc}//from w ww . ja va2 s . c o m */ @Override public long deleteBatchOfJobsCreatedBeforeDate(@NotNull final Date date, @Min(1) final int maxDeleted, @Min(1) final int pageSize) { log.info("Attempting to delete batch of jobs (at most {}) created before {} ms from epoch", maxDeleted, date.getTime()); long jobExecutionsDeleted = 0; long jobMetadatasDeleted = 0; long jobsDeleted = 0; long jobRequestsDeleted = 0; long totalAttemptedDeletions = 0; final Pageable page = new PageRequest(0, pageSize); Slice<IdProjection> idProjections; do { idProjections = this.jobRequestRepo.findByCreatedBefore(date, page); if (idProjections.hasContent()) { final List<String> ids = idProjections.getContent().stream().map(IdProjection::getId) .collect(Collectors.toList()); final long toBeDeleted = ids.size(); totalAttemptedDeletions += toBeDeleted; // Due to optimizations for queries these entity mappings aren't reversed so cascade delete // isn't available and runtime exception thrown if you try to delete from the top. log.debug("Attempting to delete {} rows from job_executions...", toBeDeleted); final long deletedExecutions = this.jobExecutionRepo.deleteByIdIn(ids); log.debug("Successfully deleted {} rows from job_executions...", deletedExecutions); if (deletedExecutions != toBeDeleted) { log.error("Deleted {} job execution records but expected to delete {}", deletedExecutions, toBeDeleted); } jobExecutionsDeleted += deletedExecutions; log.debug("Attempting to delete {} rows from job_metadata...", toBeDeleted); final long deletedMetadata = this.jobMetadataRepository.deleteByIdIn(ids); log.debug("Successfully deleted {} rows from job_metadata...", deletedMetadata); if (deletedMetadata != toBeDeleted) { log.error("Deleted {} job metadata records but expected to delete {}", deletedMetadata, toBeDeleted); } jobMetadatasDeleted += deletedMetadata; log.debug("Attempting to delete {} rows from jobs...", toBeDeleted); final long deletedJobs = this.jobRepo.deleteByIdIn(ids); log.debug("Successfully deleted {} rows from jobs...", deletedJobs); if (deletedMetadata != toBeDeleted) { log.error("Deleted {} job records but expected to delete {}", deletedJobs, toBeDeleted); } jobsDeleted += deletedJobs; log.debug("Attempting to delete {} rows from job_requests...", toBeDeleted); final long deletedJobRequests = this.jobRequestRepo.deleteByIdIn(ids); log.debug("Successfully deleted {} rows from job_requests...", deletedJobRequests); if (deletedJobRequests != toBeDeleted) { log.error("Deleted {} job request records but expected to delete {}", deletedJobRequests, toBeDeleted); } jobRequestsDeleted += deletedJobRequests; } } while (idProjections.hasNext() && totalAttemptedDeletions < maxDeleted); log.info("Deleted a chunk of {} job records: {} execution, {} metadata, {} job and {} job request records", totalAttemptedDeletions, jobExecutionsDeleted, jobMetadatasDeleted, jobsDeleted, jobRequestsDeleted); return totalAttemptedDeletions; }