クラス RepositoryItemReader<T>

実装されたすべてのインターフェース:
ItemReader<T>ItemStreamItemStreamReader<T>org.springframework.beans.factory.InitializingBean

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

PagingAndSortingRepository を使用してレコードを読み取る ItemReader

リーダーのパフォーマンスはリポジトリの実装に依存しますが、かなり大きなページサイズを設定し、それをコミット間隔と一致させると、パフォーマンスが向上します。

リーダーは、PagingAndSortingRepositorySort、0 より大きい pageSize で構成されている必要があります。

この実装は AbstractItemCountingItemStreamItemReader.open(ExecutionContext) の呼び出し間でスレッドセーフですが、マルチスレッドクライアントで使用する場合は saveState=false を使用することを忘れないでください(再起動は利用できません)。

これはページングアイテムリーダーであり、ページ自体の読み取り中にスローされる例外(doPageRead() 内のオブジェクトなどへのマッピング結果)は、このリーダーには例外があるかどうかを知る方法がないためスキップできないことに注意することが重要ですスキップされたため、スキップ制限を超えるまで同じページを読み続けます。

NOTE: RepositoryItemReader は、Java オブジェクト、つまり非プリミティブのみを読み取ります。

導入:
2.2
作成者:
Michael Minella, Antoine Kapps, Mahmoud Ben Hassine
  • フィールドの詳細

    • logger

      protected org.apache.commons.logging.Log logger
  • コンストラクターの詳細

    • RepositoryItemReader

      public RepositoryItemReader()
  • メソッドの詳細

    • setArguments

      public void setArguments(ListSE<?> arguments)
      データ提供メソッドに渡される引数。
      パラメーター:
      arguments - リポジトリに渡されるメソッド引数のリスト
    • setSort

      public void setSort(MapSE<StringSE,org.springframework.data.domain.Sort.Direction> sorts)
      ページ化されたクエリ間で順序が維持されるように、結果の順序を提供します
      パラメーター:
      sorts - ソートするフィールドと方向
    • setPageSize

      public void setPageSize(int pageSize)
      パラメーター:
      pageSize - ページごとに取得するアイテムの数。0 より大きくなければなりません。
    • setRepository

      public void setRepository(org.springframework.data.repository.PagingAndSortingRepository<?,?> repository)
      入力の読み取りに使用される PagingAndSortingRepository 実装。
      パラメーター:
      repository - 入力を読み込むための基礎となるリポジトリ。
    • setMethodName

      public void setMethodName(StringSE methodName)
      呼び出すリポジトリ上のメソッドを指定します。このメソッドは、Pageable を最後の引数としてとる必要があります。
      パラメーター:
      methodName - 呼び出すメソッドの名前
    • afterPropertiesSet

      public void afterPropertiesSet() throws ExceptionSE
      次で指定:
      インターフェース org.springframework.beans.factory.InitializingBeanafterPropertiesSet 
      例外:
      ExceptionSE
    • doRead

      @Nullable protected T doRead() throws ExceptionSE
      クラスからコピーされた説明: AbstractItemCountingItemStreamItemReader
      入力から次の項目を読み取ります。
      次で指定:
      クラス AbstractItemCountingItemStreamItemReader<T>doRead 
      戻り値:
      データソースが使い果たされた場合、アイテムまたは null 
      例外:
      ExceptionSE - サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします
    • jumpToItem

      protected void jumpToItem(int itemLastIndex) throws ExceptionSE
      クラスからコピーされた説明: AbstractItemCountingItemStreamItemReader
      指定されたアイテムインデックスに移動します。AbstractItemCountingItemStreamItemReader.doRead() を使用して入力を再読み取りするよりも効率的に特定のインデックスに移動する方法がある場合、サブクラスはこのメソッドをオーバーライドする必要があります。
      オーバーライド:
      クラス AbstractItemCountingItemStreamItemReader<T>jumpToItem 
      パラメーター:
      itemLastIndex - ジャンプするアイテムのインデックス(0 ベース)。
      例外:
      ExceptionSE - サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします
    • doPageRead

      protected ListSE<T> doPageRead() throws ExceptionSE
      リポジトリを介してページの実際の読み取りを実行します。必要に応じてオーバーライドできます。
      戻り値:
      ページを構成するアイテムのリスト
      例外:
      ExceptionSE - 基になるメソッドがスローするもの、またはメソッドの呼び出しに関連するものに基づく
    • doOpen

      protected void doOpen() throws ExceptionSE
      クラスからコピーされた説明: AbstractItemCountingItemStreamItemReader
      入力の読み取りを開始するために必要なリソースを開きます。
      次で指定:
      クラス AbstractItemCountingItemStreamItemReader<T>doOpen 
      例外:
      ExceptionSE - サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします
    • doClose

      protected void doClose() throws ExceptionSE
      クラスからコピーされた説明: AbstractItemCountingItemStreamItemReader
      AbstractItemCountingItemStreamItemReader.doOpen() で開いたリソースを閉じます。
      次で指定:
      クラス AbstractItemCountingItemStreamItemReader<T>doClose 
      例外:
      ExceptionSE - サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします