mybatis resultMap 中的association标签,没有设置javaType会报错。

本文详细解析了在MyBatis中遇到的NullPointer异常原因,特别是<association>和<collection>标签未正确设置javaType导致的问题。通过实例展示了如何在XML映射文件中设置正确的javaType和ofType属性,避免此类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

< resultMap > 中的< association >标签 没有设置 javaType 

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating null with invalid types () or values (). Cause: java.lang.NullPointerException
### The error may exist in com/heima/dydao/DyOrderDao.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: select   o.id,o.user_id,o.ordernum,o.createtime,o.note,u.username,u.address from   morders o   left join users u on o.user_id=u.id
.

.

.
Caused by: java.lang.NullPointerException
    at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:60)
    ... 49 more

 解决方式,就是设置 javaType

 

collection标签:javaType 为一对多关联中的关系,如在用户用存在一个List<Order>,这样此处的javaType应为list,ofType指定泛型类型。

<collection property="orders" javaType="list" ofType="order">

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值