code: @Override
      public synchronized SnapshotContentItem read()
          throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {
  
          if (this.items == null) {
              this.items =
                  new StreamingIterator<>(new JpaIteratorSource<SnapshotContentItemRepo, SnapshotContentItem>(repo) {
                      @Override
                      protected Page<SnapshotContentItem> getNextPage(Pageable pageable, SnapshotContentItemRepo repo) {
                          return repo.findBySnapshotName(snapshotName, pageable);
                      }
                  });
              skipLinesAlreadyRead(this.items);
          }
          return this.items.hasNext() ? this.items.next() : null;
      }
docs: /* (non-Javadoc)
  @see org.springframework.batch.item.ItemReader#read()