There is no getter for property named 'jobNumber' in 'class java.lang.Integer' 的解决办法
问题概述在基于微服务架构风格的项目开发过程中,为了提高快速开发的目的,提高开发效率,集成了 MyBatisPlus,对于 MyBatisPlus 封装的 CRUD API 接口已经非常强大了,但是有时还是需要使用其动态 SQL 的拼接,在传参时遇到了个梗,异常信息 “ nested exception is org.apache.ibatis.reflection.ReflectionEx...
问题概述
在基于微服务架构风格的项目开发过程中,为了提高快速开发的目的,提高开发效率,集成了 MyBatisPlus,对于 MyBatisPlus 封装的 CRUD API 接口已经非常强大了,但是有时还是需要使用其动态 SQL 的拼接,在传参时遇到了个梗,异常信息 “ nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'jobNumber' in 'class java.lang.Integer' ”
如下图:
解决办法
各种摸索,各种尝试,得出了三种解决办法,在这儿记录一下(只记录中的两种),
1、在入参的时候,加入直接 @Param ,其 value 属性值就是其入参的名称,
Java 代码示例代码如下:
public interface LoginLogMapper
extends BaseMapper<LoginLog>
{
List<LoginLog> getLoginLogByPage(
@Param(value = "jobNumber")
Integer jobNumber
);
}
SQL 代码示例如下:
<select id="getLoginLogByPage" resultType="com.mcp.entity.LoginLog">
SELECT l.id, l.job_number, l.name, l.createDate, l.ip_addr
, l.remark
FROM loginlog l
<where>
<if test="jobNumber != null" >
and l.job_number = #{jobNumber}
</if>
</where>
GROUP BY l.today_date, l.ip_address;
</select>
添加 @Param 注解后,就可以成功请求处理,如下图:
2、Java 代码不变,只修改 SQL ,SQL中的入参使用MyBatis的一个内置对象 “ _parameter ”,
Java 示例代码如下:
public interface LoginLogMapper
extends BaseMapper<LoginLog>
{
List<LoginLog> getLoginLogByPage(Integer jobNumber);
}
示例SQL如下:
<select id="getLoginLogByPage" resultType="com.mcp.entity.LoginLog">
SELECT l.id, l.job_number, l.name, l.createDate, l.ip_addr
, l.remark
FROM loginlog l
<where>
<if test="_paramete != null" >
and l.job_number = #{_paramete}
</if>
</where>
GROUP BY l.today_date, l.ip_address;
</select>
好了,关于 There is no getter for property named 'jobNumber' in 'class java.lang.Integer' 的解决办法 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。
作 者: | 华 仔 |
联系作者: | who.seek.me@java98k.vip |
来 源: | CSDN (Chinese Software Developer Network) |
原 文: | https://blog.csdn.net/Hello_World_QWP/article/details/86504767 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |
更多推荐
所有评论(0)