MyBatis中只有一个参数时--如何判断null呢?
今天在代码编写时,方法中只有一个参数,但是当我对参数进行空值判断时
则出现以下错误
则出现以下错误
org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer' 异常原因应该是test中的参数只能是parameterType类中的属性 而不是parameterType本身例:
list<Order> selectListById(Integer id); 只有一个数字类型的参数,而且id参数有可能是null。 如果在xml文件里这样写: <select id="selectListById" resultMap="baseResultMap" parameterType="java.lang.Integer"> select * from `order` a where a.status=0 <if test="id != null"> and id = #{id} </if> </select> 会引发异常 org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer'处理方法
1.方法中加入加@param注解 然后就可以在test中使用名字是id的参数了: List<Order> selectListById(@param("id") Integer id); 2.如果Integer类型参数 可以在test里用value参数: <select id="selectListById" resultMap="baseResultMap" parameterType="java.lang.Integer"> select * from `order` a where a.status=0 <if test="value != null"> and id = #{id} </if> </select>
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。