public class Queueing1NRelationDataRowHandlerImpl extends QueueingDataRowHandlerImpl implements QueueingDataRowHandler
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" <b>groupBy="col1"</b>>
<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)
<b>ORDER BY col1</b>, ...
</select>
sqlMap記述例2(1:M:Nマッピング):
<resultMap id="rmap_JB1231_SQL" class="sample.JB1231Data" <b>groupBy="col1"</b>>
<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 <b>ORDER BY col1</b>, ...
</select>
dataCount, dbCollector, prevRow, verboseLog| コンストラクタと説明 |
|---|
Queueing1NRelationDataRowHandlerImpl() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
void |
delayCollect()
前回handleRowメソッドに渡された
Rowデータをキューに格納する。 |
handleRow, setDbCollector, setVerboseclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsetDbCollectorhandleRowpublic void delayCollect()
Rowデータをキューに格納する。delayCollect インタフェース内 QueueingDataRowHandlerdelayCollect クラス内 QueueingDataRowHandlerImplCopyright © 2014 NTT DATA Corporation.