在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"/>
答案 0 :(得分:0)
否:参数和结果图是两个截然不同的东西。您无法直接从参数中提供结果映射。
如果您希望输入参数位于结果Map中,那么它必须位于结果集中,因此如果您对该列进行过滤,则必须选择相应的列:SELECT col FROM t WHERE col = #{param}
或将其添加为伪column:SELECT '${param}' AS "colName" FROM t
并像往常一样使用参数化构造函数映射它。
如果构造函数参数是复杂类型,则使用<arg resultMap="anotherResultMap" />
而不是<arg column="col" />
。