mybatis在构造函数中使用输入参数作为参数

时间:2016-12-13 23:06:35

标签: mybatis

在mybatis中,我可以在resultMap构造函数中使用输入@Param对象吗?

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"/>

1 个答案:

答案 0 :(得分:0)

否:参数和结果图是两个截然不同的东西。您无法直接从参数中提供结果映射。

如果您希望输入参数位于结果Map中,那么它必须位于结果集中,因此如果您对该列进行过滤,则必须选择相应的列:SELECT col FROM t WHERE col = #{param}或将其添加为伪column:SELECT '${param}' AS "colName" FROM t并像往常一样使用参数化构造函数映射它。

如果构造函数参数是复杂类型,则使用<arg resultMap="anotherResultMap" />而不是<arg column="col" />