public class HibernatePagingItemReader<T> extends AbstractPagingItemReader<T> implements org.springframework.beans.factory.InitializingBean
ItemReader
。AbstractItemCountingItemStreamItemReader.read()
メソッドが呼び出されると、初期化されたページング時に HQL クエリが実行されます。クエリは setQueryString(String)
を使用して直接設定するか、名前付きクエリを setQueryName(String)
で使用するか、クエリプロバイダー戦略を setQueryProvider(HibernateQueryProvider)
を介して提供することができます。 リーダーは、関連付けられたオブジェクトにカスケードする必要のない単純なマッピングに十分な StatelessSession
、またはより高度なマッピングまたはキャッシュが必要な場合に標準の休止状態の Session
を使用するように構成できます。ステートフルセッションが使用されると、フラッシュされずに AbstractItemCountingItemStreamItemReader.update(ExecutionContext)
メソッドでクリアされます(データの変更は予期されません)。
実装は AbstractItemCountingItemStreamItemReader.open(ExecutionContext)
の呼び出し間でスレッドセーフですが、マルチスレッドクライアントで使用する場合は saveState=false
を使用することを忘れないでください(再起動は利用できません)。
logger, results
コンストラクターと説明 |
---|
HibernatePagingItemReader() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() 必須プロパティを確認してください。 |
protected void | doClose() AbstractItemCountingItemStreamItemReader.doOpen() で開いたリソースを閉じます。 |
protected void | doJumpToPage(int itemIndex) |
protected void | doOpen() 入力の読み取りを開始するために必要なリソースを開きます。 |
protected void | doReadPage() |
void | setFetchSize(int fetchSize) Hibernate が内部で使用するフェッチサイズ。ラウンドトリップごとにデータベースからフェッチされるデータの量を制限します。 |
void | setParameterValues(java.util.Map<java.lang.String,java.lang.Object> parameterValues) クエリに適用するパラメーター値(name:value のマップ)。 |
void | setQueryName(java.lang.String queryName) 外部化されたクエリのクエリ名。 |
void | setQueryProvider(HibernateQueryProvider<? extends T> queryProvider) クエリプロバイダー。 |
void | setQueryString(java.lang.String queryString) HQL のクエリ文字列。 |
void | setSessionFactory(org.hibernate.SessionFactory sessionFactory) Hibernate SessionFactory を使用してセッションを作成します。 |
void | setUseStatelessSession(boolean useStatelessSession) 初期化されていない状態でのみ設定できます。 |
doRead, getPage, getPageSize, jumpToItem, setPageSize
close, getCurrentItemCount, isSaveState, open, read, setCurrentItemCount, setMaxItemCount, setSaveState, update
getExecutionContextKey, setExecutionContextName, setName
public void setParameterValues(java.util.Map<java.lang.String,java.lang.Object> parameterValues)
parameterValues
- 設定するパラメーター値 public void setQueryName(java.lang.String queryName)
query string
または {query provider
のいずれかを設定する必要があります。queryName
- 休止状態の名前付きクエリの名前 public void setFetchSize(int fetchSize)
fetchSize
- Hibernate に渡すフェッチサイズ public void setQueryProvider(HibernateQueryProvider<? extends T> queryProvider)
query string
または {query name
のいずれかを設定する必要があります。queryProvider
- Hibernate クエリプロバイダー public void setQueryString(java.lang.String queryString)
query provider
または {query name
のいずれかを設定する必要があります。queryString
- HQL クエリ文字列 public void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
sessionFactory
- 設定する SessionFactory
public void setUseStatelessSession(boolean useStatelessSession)
useStatelessSession
- true
は StatelessSession
を使用します。false
は標準の休止状態 Session
を使用します public void afterPropertiesSet() throws java.lang.Exception
AbstractPagingItemReader
org.springframework.beans.factory.InitializingBean
の afterPropertiesSet
AbstractPagingItemReader<T>
の afterPropertiesSet
java.lang.Exception
InitializingBean.afterPropertiesSet()
protected void doOpen() throws java.lang.Exception
AbstractItemCountingItemStreamItemReader
AbstractPagingItemReader<T>
の doOpen
java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします protected void doReadPage()
AbstractPagingItemReader<T>
の doReadPage
protected void doJumpToPage(int itemIndex)
AbstractPagingItemReader<T>
の doJumpToPage
protected void doClose() throws java.lang.Exception
AbstractItemCountingItemStreamItemReader
AbstractItemCountingItemStreamItemReader.doOpen()
で開いたリソースを閉じます。AbstractPagingItemReader<T>
の doClose
java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします