1.@Param注解用于给参数命名
如果传递的参数类型是基本数据类型和String类型,需要使用这个注解
踩坑就是如果不使用@Param注解,参数传递不过去,虽然名字是一样的,但是Param不能省略
这里就是给接口里面的参数重命名为#{}里面的名称
List<EditCheckIdToFuncName> getEditCheckIdToFunctionNameByMap(@Param("studyId") String studyId, @Param("ecrfDraftId") String ecrfDraftId);
<resultMap id="funcMap" type="com.XXXXXX.app.edc.business.draft.excel.EditCheckIdToFuncName">
<id column="edit_check_id" jdbcType="VARCHAR" property="editCheckId"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="function_type" jdbcType="INTEGER" property="functionType"/>
</resultMap>
<select id="getEditCheckIdToFunctionNameByMap" resultMap="funcMap">
select a.edit_check_id,a.name,a.function_type from
(select p.edit_check_id,p.study_id,p.ecrf_draft_id,p.ecrf_version_id,p.ecrf_sub_version_id, c.name ,c.function_type
from edc_crf_logical_action_parameter p
left join edc_customized_function c
on c.id = p.function_id) a
where a.function_type = 2
and a.study_id = #{studyId}
and a.ecrf_draft_id = #{ecrfDraftId}
</select>
2.不使用这个注解的情况:传递的是一个JAVABEAN