// Mapper.java
EmerEvent selectByAlarmId(Integer alarmId);

// Mapper.xml
<select >
    select
        <include ref>
    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 >
     select
        <include ref>
     from event
        where alarm_id = #{alarmId,jdbcType=Integer}
</select>

2.如果想要使用if标签,则将参数alarmId封装到对象或Map中即可

相关文章:

  • 2022-12-23
  • 2021-12-15
  • 2022-12-23
  • 2021-10-24
  • 2021-05-28
  • 2021-07-07
  • 2022-12-23
  • 2021-07-03
猜你喜欢
  • 2022-12-23
  • 2021-12-31
  • 2021-04-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案