SpringBoot的Mapper文件什么时候必要利用@Param注解

打印 上一主题 下一主题

主题 1028|帖子 1028|积分 3084

解决:nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found

关于加注解,其他博客说的很清楚!但是有的人会遇见明明利用的springboot2.x以上版本,仍旧提示必要加注解!这是为什么?
标题解答:jdk版本如果在1.8或以下就会遇见这个标题,由于字节编码方式不同了
历史原因:
在Java8之前,可以说你无法做到(你是不大概读取这个 id) 的,由于Java在编译的时候会将 String deviceId编译为 String arg0,然而Java8中新增了这样的一个特性,你可以在编译的时候设定保留参数名称.详见源码分析
错误总结:
注: 利用jdk1.7得到的是: [1, 0, param1, param2]
利用1.8得到的则是: [arg1, arg0, param1, param2]

idea有时可以不加@Param,那么它 对我的代码做了什么?
但是 你如利用的是idea ,即时不写@Param 也能成功,原因是
IDEA编译时采取了逼迫保持方法参数变量名,但必要满足如下

  • 必须是jdk8或以上
  • 编译器参数-parameters

    我用1.8实际运行起来依然不行,以是发起大家照旧加上注解

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表