2016-12-13 14 views
0

mybatisでは、resultMapコンストラクタで入力@Paramオブジェクトを使用できますか?mybatisコンストラクタの引数として入力パラメータを使用

int test(@Param("param1") someObj obj, @Param("str") String str); 

<resultMap id="testResultMap" type="com.test.someOtherObject"> 
    <constructor> 
     <idArg column="id" javaType="String"/> 
     <arg column="<use the input param obj of type someObj>" javaType="com.test.someObj"/> 

答えて

0

いいえ:パラメータと結果マップは2つの異なるものです。結果マップをパラメータから直接フィードすることはできません。

入力パラメータを結果マップに含める場合は、結果セットに含める必要があるため、その列でフィルタリングする場合は対応する列を選択するか、SELECT col FROM t WHERE col = #{param}を擬似列として追加するか、擬似列として追加します。SELECT '${param}' AS "colName" FROM t必要に応じてパラメータ化されたコンストラクタを使用して通常どおりにマップします。

コンストラクタの引数が複合型の場合は、<arg column="col" />の代わりに<arg resultMap="anotherResultMap" />を使用します。

関連する問題