当前位置:网站首页>错误类型:reflection.ReflectionException: Could not set property ‘xxx‘ of ‘class ‘xxx‘ with value ‘xxx‘
错误类型:reflection.ReflectionException: Could not set property ‘xxx‘ of ‘class ‘xxx‘ with value ‘xxx‘
2022-08-05 05:18:00 【温柔哥`】
这是我遇到的问题的全写:
Cause: org.apache.ibatis.reflection.ReflectionException: Could not set property 'providerName' of 'class com.smbms.pojo.Bill' with value 'Provider(id=null, proCode=null, proName=深圳市泰香米业有限公司, proDesc=null, proContact=null, proPhone=null, proAddress=null, proFax=null, createdBy=null, creationDate=null, modifyBy=null, modifyDate=null)' Cause: java.lang.IllegalArgumentException: argument type mismatch
这种情况下他还是可以查出部分结果的,但是还是会报错,下面这张图是我出现错误的控制台显示
解决办法
这个问题困扰了我一个下午才得以解决,其实是一个 collection 复杂类型集合下的 resultMap 标签的 type 写错了,因为我在实体类中将我的 providerName 定义为 String 类型,但是我却在 Type 中写成 com.smbms.pojo.Provider,这边导致了我的程序一直出现这个问题,尽管调试了很多别的地方也没有效果。
这个是我之前错误的代码:
<resultMap id="billList" type="com.smbms.pojo.Bill">
<result property="billCode" column="billCode"></result>
<result property="productName" column="productName"></result>
<result property="providerName" column="proName"></result>
<result property="totalPrice" column="totalPrice"></result>
<result property="isPayment" column="isPayment"></result>
<result property="creationDate" column="creationDate"></result>
<association property="providerName" javaType="com.smbms.pojo.Provider" resultMap="provider"></association>
</resultMap>
<resultMap id="provider" type="com.smbms.pojo.Provider">
<result property="proName" column="proName"></result>
</resultMap>
这个是我更改后的代码:
<resultMap id="billList" type="com.smbms.pojo.Bill">
<result property="billCode" column="billCode"></result>
<result property="productName" column="productName"></result>
<result property="providerName" column="proName"></result>
<result property="totalPrice" column="totalPrice"></result>
<result property="isPayment" column="isPayment"></result>
<result property="creationDate" column="creationDate"></result>
<association property="providerName" javaType="com.smbms.pojo.Provider" resultMap="provider"></association>
</resultMap>
<resultMap id="provider" type="java.lang.String">
<result property="proName" column="proName"></result>
</resultMap>
大家可以看到,在下面的 resultMap 标签的 type 中改为 java.lang.String,运行就成功了。
下面这张图是运行成功之后的结果,大家可以看到此时查出来的结果是完整的
不过令我感到疑惑的是,我把下面这条代码中的 javaType="com.smbms.pojo.Provider" 改为 javaType= " java.lang.String" 仍然是没有错误的,希望懂的小伙伴可以留言在评论区。
<association property="providerName" javaType="com.smbms.pojo.Provider" resultMap="provider"></association>
补充知识点
collection
复杂类型集合,一对多
内部嵌套,映射一个嵌套结果集到一个列表
属性 property:映射数据库列的实体对象的属性
ofType:完整Java类名或者别名(集合所包括的类型)
resultMap:引用外部resultMap
子元素 id
result property:映射数据库列的实体对象的属性
column:数据库列名或者别名
边栏推荐
猜你喜欢
随机推荐
C语言入门笔记 —— 函数(1)
[Intensive reading of the paper] R-CNN's Bounding box regression problem is detailed
云游戏未来展望
专有宿主机CDH
每日一题-单调栈
【UiPath2022+C#】UiPath If条件语句
Unity huatuo 革命性热更系列1.3 huatuo示例项目源码分析与启发
framebuffer应用编程及文字显示(2)
每日一题-寻找两个正序数组的中位数-0713
LeetCode刷题之第416题
【nodejs】第一章:nodejs架构
C语言入门笔记 —— 分支与循环
每日一题-无重复字符的最长子串-0712
【shell编程】第三章:函数
论那些给得出高薪的游戏公司底气到底在哪里?
洞察互联网大趋势,读完这篇文章你就彻底了解中文域名
D45_摄像机组件Camera
腾讯内部技术:《轩辕传奇》服务器架构演变
偷题——腾讯游戏开发面试问题及解答
【ts】typeScript高阶:any和unknown