2016-12-13 84 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" />