// Mapper.javaEmerEvent selectByAlarmId(Integer alarmId);// Mapper.xml<select id="selectByAlarmId" resultMap="BaseResultMap" parameterType="java.lang.Integer"> select <include refid="Base_Column_List" /> from event <where> <if test="alarmId != null"> and alarm_id = #{alarmId,jdbcType=Integer} </if> </where></select>由於只傳了一個參數:alarmId,配置文件中對應的sql裡使用if標籤,然後報錯:
nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'alarmId' in 'class java.lang.Integer'
解決辦法:
1.將mapper配置文件中的sql語句中的if判斷去掉
<select id="selectByAlarmId" resultMap="BaseResultMap" parameterType="java.lang.Integer"> select <include refid="Base_Column_List" /> from event where alarm_id = #{alarmId,jdbcType=Integer}</select>2.如果想要使用if標籤,則將參數alarmId封裝到對像或Map中即可
總結
以上所述是小編給大家介紹的Mybatis傳單個參數和<if>標籤同時使用的問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!