MyBatis中只有一个参数时--如何判断null呢?

书欣 MyBatis 发布时间:2022-08-06 19:56:08 阅读数:11369 1
今天在代码编写时,方法中只有一个参数,但是当我对参数进行空值判断时
则出现以下错误
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> 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/MyBatis/202208/4162.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者