|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.terasoluna.fw.batch.core.AbstractCollector<JobContext>
jp.terasoluna.fw.batch.ibatissupport.IBatisDb1NRelationCollectorImpl
public class IBatisDb1NRelationCollectorImpl
iBatisを用いた対象データ取得の実装クラス。
IBatisDbCollectorImplの1:Nマッピング対応版。
1:Nマッピング使用時、iBATISは1:N構造のオブジェクトが完成する前に
RowHandler#handleRow(DataRowHandler#handleRow)に渡すため、
このコレクタでは、
RowHandler#handleRow(DataRowHandler#handleRow)に渡された結果を、次回同メソッドが実行されたときに
キューに格納する。
最後に渡された結果は、iBATISが処理を終えた時点でキューに格納する。
また、1:Nマッピング使用時、iBATISは全てのデータを取得し終わるまで、
RowHandler#handleRow(DataRowHandler#handleRow)に渡したオブジェクトを、全てiBATIS内部に保持し続けるため、
このコレクタでは、RowHandler#handleRow(DataRowHandler#handleRow)に渡されたオブジェクトのシャローコピーをキューに格納し、
RowHandler#handleRow(DataRowHandler#handleRow)に渡されたオブジェクトの全プロパティを初期化する。
使用上の注意:
使いどころ
sqlMap記述例1(1:Nマッピング):
<resultMap id="rmap_JB1231_SQL" class="sample.JB1231Data" groupBy="col1"> <result property="col1"/> <result property="col2"/> <result property="col3"/> <result property="detail1" resultMap="rmap_JB1231_SQL_detail1"/> </resultMap> <resultMap id="rmap_JB1231_SQL_detail1" class="sample.Detail1"> <result property="d12" column="d12"/> <result property="d13" column="d13"/> </resultMap> <select id="JB1231_SQL" resultMap="rmap_JB1231_SQL"> SELECT t1.col1 as col1, t1.col2 as col2, t1.col3 as col3, d1.col2 as d12, d1.col3 as d13, FROM (sample_table1 t1 left outer join sample_table1_detail1 d1 on t1.col1 = d1.col1) ORDER BY col1, ... </select>sqlMap記述例2(1:M:Nマッピング):
<resultMap id="rmap_JB1231_SQL" class="sample.JB1231Data" groupBy="col1"> <result property="col1"/> <result property="col2"/> <result property="col3"/> <result property="detail1" resultMap="rmap_JB1231_SQL_detail1"/> <result property="detail2" resultMap="rmap_JB1231_SQL_detail2"/> </resultMap> <resultMap id="rmap_JB1231_SQL_detail1" class="sample.Detail1"> <result property="d12" column="d12"/> <result property="d13" column="d13"/> </resultMap> <resultMap id="rmap_JB1231_SQL_detail2" class="sample.Detail2"> <result property="d22" column="d22"/> <result property="d23" column="d23"/> </resultMap> <select id="JB1231_SQL" resultMap="rmap_JB1231_SQL"> SELECT * FROM ( SELECT t1.col1 as col1, t1.col2 as col2, t1.col3 as col3, d1.col2 as d12, d1.col3 as d13, null as d22, null as d23 FROM (sample_table1 t1 left outer join sample_table1_detail1 d1 on t1.col1 = d1.col1) UNION ALL SELECT t1.col1 as col1, t1.col2 as col2, t1.col3 as col3, null as d12, null as d13, d2.col2 as d22, d2.col3 as d23 FROM (sample_table1 t1 left outer join sample_table1_detail2 d2 on t1.col1 = d2.col1) ) AS A ORDER BY col1, ... </select>
入れ子のクラスの概要 | |
---|---|
private static class |
IBatisDb1NRelationCollectorImpl.QueuePutRowHandler
Row ハンドラの実装クラス。 |
フィールドの概要 | |
---|---|
private QueryRowHandleDAO |
queryRowHandleDAO
SqlMapClient データアクセスObject 。 |
private java.lang.String |
sql
対象データ取得用SQL文キー。 |
コンストラクタの概要 | |
---|---|
IBatisDb1NRelationCollectorImpl()
|
メソッドの概要 | |
---|---|
protected CollectorResult |
doCollect(JobContext jobContext,
CollectedDataHandler collectedDataHandler,
JobStatus jobStatus)
対象データ取得処理を実行するメソッド。 |
void |
setQueryRowHandleDAO(QueryRowHandleDAO queryRowHandleDAO)
SqlMapClient データアクセスObject を設定する。 |
void |
setSql(java.lang.String sql)
対象データ取得用SQL文キーを設定する。 |
クラス jp.terasoluna.fw.batch.core.AbstractCollector から継承されたメソッド |
---|
collect, setCollectedDataHandlerFactory |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
private java.lang.String sql
private QueryRowHandleDAO queryRowHandleDAO
SqlMapClient
データアクセスObject
。
コンストラクタの詳細 |
---|
public IBatisDb1NRelationCollectorImpl()
メソッドの詳細 |
---|
protected CollectorResult doCollect(JobContext jobContext, CollectedDataHandler collectedDataHandler, JobStatus jobStatus)
AbstractCollector<JobContext>
内の doCollect
jobContext
- ジョブコンテキストcollectedDataHandler
- ワーカキューjobStatus
- 処理状況
public void setQueryRowHandleDAO(QueryRowHandleDAO queryRowHandleDAO)
SqlMapClient
データアクセスObject
を設定する。
queryDAO
- SqlMapClient
データアクセスObject
public void setSql(java.lang.String sql)
sql
- 対象データ取得用SQL文キー
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |