2016-12-13 44 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

否:參數和結果圖是兩個截然不同的東西。您無法直接從參數提供結果圖。

如果您希望輸入參數位於結果集中,那麼它必須位於結果集中,因此,如果在該列上進行過濾,您必須選擇相應的列:SELECT col FROM t WHERE col = #{param}或將其添加爲僞列:SELECT '${param}' AS "colName" FROM t並像往常一樣映射它與參數化的構造函數,如果你喜歡。

如果構造函數參數是複雜類型,則使用<arg resultMap="anotherResultMap" />而不是<arg column="col" />