以下に示すように、MyBatis マッパー XML ファイルに 2 つの選択があります。3 つのシナリオがあります。
- 最初の選択からのみ結果を取得 -
getResultsA
- 2 番目の選択からのみ結果を取得する -
getResultsB
- 最初の選択と 2 番目の選択の両方を組み合わせる -
getResultsAAndB
ここに私のXMLがあります:
<select id="getResultsA" resultMap="myResultMap" parameterType="MyParameters">
<!-- select statement 1 -->
</select>
<select id="getResultsB" resultMap="myResultMap" parameterType="MyParameters">
<!-- select statement 2 -->
</select>
<select id="getResultsAAndB" resultMap="myResultMap" parameterType="MyParameters">
<!-- NEED TO MERGE RESULTS FROM BOTH getResultsA & getResultsB-->
</select>
シナリオ 1 と 2 では、それぞれの選択を個別に使用できます。ユニオンを使用して新しい SQL ステートメントを作成することなく、3 番目のシナリオを実現するにはどうすればよいですか? 私は現在、2 つの別々のマッパー呼び出しによってこれを達成してlist.addall(anotherList)
から、Java で結果をマージしています。言い換えれば、両方の選択からの結果をマージする必要があるだけで、結果マップが同じであれば、これは可能だと思います。