public class RepositoryItemReader<T> extends AbstractItemCountingItemStreamItemReader<T> implements org.springframework.beans.factory.InitializingBean
PagingAndSortingRepository
を使用してレコードを読み取る ItemReader
。
リーダーのパフォーマンスはリポジトリの実装に依存しますが、かなり大きなページサイズを設定し、それをコミット間隔と一致させると、パフォーマンスが向上します。
リーダーは、PagingAndSortingRepository
、Sort
、0 より大きい pageSize で構成する必要があります。
この実装は AbstractItemCountingItemStreamItemReader.open(ExecutionContext)
の呼び出し間でスレッドセーフですが、マルチスレッドクライアントで使用する場合は saveState=false
を使用することを忘れないでください(再起動は利用できません)。
これはページングアイテムリーダーであり、ページ自体の読み取り中にスローされる例外(doPageRead()
内のオブジェクトなどへのマッピング結果)は、このリーダーには例外があるかどうかを知る方法がないためスキップできないことに注意することが重要ですスキップされたため、スキップ制限を超えるまで同じページを読み続けます。
NOTE: RepositoryItemReader
は、Java オブジェクト、つまり非プリミティブのみを読み取ります。
修飾子と型 | フィールドと説明 |
---|---|
protected org.apache.commons.logging.Log | logger |
コンストラクターと説明 |
---|
RepositoryItemReader() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() |
protected void | doClose() AbstractItemCountingItemStreamItemReader.doOpen() で開いたリソースを閉じます。 |
protected void | doOpen() 入力の読み取りを開始するために必要なリソースを開きます。 |
protected java.util.List<T> | doPageRead() リポジトリを介してページの実際の読み取りを実行します。 |
protected T | doRead() 入力から次の項目を読み取ります。 |
protected void | jumpToItem(int itemLastIndex) 指定されたアイテムインデックスに移動します。 |
void | setArguments(java.util.List<?> arguments) データ提供メソッドに渡される引数。 |
void | setMethodName(java.lang.String methodName) 呼び出すリポジトリ上のメソッドを指定します。 |
void | setPageSize(int pageSize) |
void | setRepository(org.springframework.data.repository.PagingAndSortingRepository<?,?> repository) 入力の読み取りに使用される PagingAndSortingRepository 実装。 |
void | setSort(java.util.Map<java.lang.String,org.springframework.data.domain.Sort.Direction> sorts) ページ化されたクエリ間で順序が維持されるように、結果の順序を提供します |
close, getCurrentItemCount, isSaveState, open, read, setCurrentItemCount, setMaxItemCount, setSaveState, update
getExecutionContextKey, setExecutionContextName, setName
public void setArguments(java.util.List<?> arguments)
arguments
- リポジトリに渡されるメソッド引数のリスト public void setSort(java.util.Map<java.lang.String,org.springframework.data.domain.Sort.Direction> sorts)
sorts
- ソートするフィールドと方向 public void setPageSize(int pageSize)
pageSize
- ページごとに取得するアイテムの数。public void setRepository(org.springframework.data.repository.PagingAndSortingRepository<?,?> repository)
PagingAndSortingRepository
実装。repository
- 入力を読み込むための基礎となるリポジトリ。public void setMethodName(java.lang.String methodName)
Pageable
を最後の引数としてとる必要があります。methodName
- 呼び出すメソッドの名前 public void afterPropertiesSet() throws java.lang.Exception
org.springframework.beans.factory.InitializingBean
の afterPropertiesSet
java.lang.Exception
@Nullable protected T doRead() throws java.lang.Exception
AbstractItemCountingItemStreamItemReader
AbstractItemCountingItemStreamItemReader<T>
の doRead
null
java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします protected void jumpToItem(int itemLastIndex) throws java.lang.Exception
AbstractItemCountingItemStreamItemReader
AbstractItemCountingItemStreamItemReader.doRead()
を使用して入力を再読み取りするよりも効率的に特定のインデックスに移動する方法がある場合、サブクラスはこのメソッドをオーバーライドする必要があります。AbstractItemCountingItemStreamItemReader<T>
の jumpToItem
itemLastIndex
- ジャンプするアイテムのインデックス(0 ベース)。java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします protected java.util.List<T> doPageRead() throws java.lang.Exception
java.lang.Exception
- 基になるメソッドがスローするもの、またはメソッドの呼び出しに関連するものに基づく protected void doOpen() throws java.lang.Exception
AbstractItemCountingItemStreamItemReader
AbstractItemCountingItemStreamItemReader<T>
の doOpen
java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします protected void doClose() throws java.lang.Exception
AbstractItemCountingItemStreamItemReader
AbstractItemCountingItemStreamItemReader.doOpen()
で開いたリソースを閉じます。AbstractItemCountingItemStreamItemReader<T>
の doClose
java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします