mybatisplus @Select注解中拼写动态sql异常

作者: adm 分类: mybatis,mysql 发布时间: 2022-12-23

使用mybatisplus后,手写SQL语句很少了,偶尔使用@Select时,
之前一直用实体类传递参数,完全能够正常使用,今天换成了参数传递,报下面的错误

  @Select("<script>"
            +"select * from mi_taobao where 1=1"
            +"<if test='status != null'>"
            +"and status = #{status}"
            +"</if>"
            +"</script>")
    public List getTaobao(Integer status);

Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘status’ in ‘class java.lang.Interger’

纳闷了,我就传个普通参数,和getter方法有啥关系呢,查找了一下资料

出现原因:这里出现的问题是在mapper方法中定义的参数 与 实体中定义的属性不一致 导致的,不知道mybatis在想什么。
解决方案:mapper层加@Param(“xxxx”)注解即可,修改如下就可以了

  @Select("<script>"
            +"select * from mi_taobao where 1=1"
            +"<if test='status != null'>"
            +"and status = #{status}"
            +"</if>"
            +"</script>")
    public List getTaobao(@Param("status") Integer status);

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!