类 RepositoryItemReader<T>

  • 所有已实现的接口:
    ItemReader<T>, ItemStream, ItemStreamReader<T>, org.springframework.beans.factory.InitializingBean

    public class RepositoryItemReader<T>
    extends AbstractItemCountingItemStreamItemReader<T>
    implements org.springframework.beans.factory.InitializingBean

    A ItemReader that reads records utilizing a PagingAndSortingRepository.

    Performance of the reader is dependent on the repository implementation, however setting a reasonably large page size and matching that to the commit interval should yield better performance.

    The reader must be configured with a PagingAndSortingRepository, a Sort, and a pageSize greater than 0.

    This implementation is thread-safe between calls to AbstractItemCountingItemStreamItemReader.open(ExecutionContext), but remember to use saveState=false if used in a multi-threaded client (no restart available).

    It is important to note that this is a paging item reader and exceptions that are thrown while reading the page itself (mapping results to objects, etc in the doPageRead()) will not be skippable since this reader has no way of knowing if an exception should be skipped and therefore will continue to read the same page until the skip limit is exceeded.

    NOTE: The RepositoryItemReader only reads Java Objects i.e. non primitives.

    从以下版本开始:
    2.2
    作者:
    Michael Minella
    • 字段详细资料

      • logger

        protected org.apache.commons.logging.Log logger
    • 方法详细资料

      • setArguments

        public void setArguments​(java.util.List<?> arguments)
        Arguments to be passed to the data providing method.
        参数:
        arguments - list of method arguments to be passed to the repository
      • setSort

        public void setSort​(java.util.Map<java.lang.String,​org.springframework.data.domain.Sort.Direction> sorts)
        Provides ordering of the results so that order is maintained between paged queries
        参数:
        sorts - the fields to sort by and the directions
      • setPageSize

        public void setPageSize​(int pageSize)
        参数:
        pageSize - The number of items to retrieve per page.
      • setRepository

        public void setRepository​(org.springframework.data.repository.PagingAndSortingRepository<?,​?> repository)
        The PagingAndSortingRepository implementation used to read input from.
        参数:
        repository - underlying repository for input to be read from.
      • setMethodName

        public void setMethodName​(java.lang.String methodName)
        Specifies what method on the repository to call. This method must take Pageable as the last argument.
        参数:
        methodName - name of the method to invoke
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        指定者:
        afterPropertiesSet 在接口中 org.springframework.beans.factory.InitializingBean
        抛出:
        java.lang.Exception
      • doPageRead

        protected java.util.List<TdoPageRead()
                                        throws java.lang.Exception
        Performs the actual reading of a page via the repository. Available for overriding as needed.
        返回:
        the list of items that make up the page
        抛出:
        java.lang.Exception - Based on what the underlying method throws or related to the calling of the method