Mybatis报错处理

本文详细解析了在使用Mybatis注解时,因@Result注解顺序不当导致的IllegalArgumentException异常。强调了带有id属性的@Result注解应置于@Results注解内最前方的重要性,并提供了正确的代码示例。

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

本篇记录操作Mybatis所遇到的错误

Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for XXX

该异常,从字面意思很难找到错误,所以记录一下。在以注解形式操作Mybatis的时候,需要将定义且带id的@Result放在坐前面。

这是错误的:
	//上面还有
    @Results(id = "roleResultMap", value = {
            @Result(property = "id",column = "id", id = true),
            @Result(property = "roleName", column = "role_name"),
            @Result(property = "enabled", column = "enabled"),
            @Result(property = "createBy", column = "create_by"),
            @Result(property = "createTime", column = "create_time")
    })
    @ResultMap("roleResultMap")
    @Select({"select * from sys_role"})
    List<SysRole> selectAll();

这是正确的:
public interface RoleMapper {
    //Results带id的需要放在Mapper最前面
    @Results(id = "roleResultMap", value = {
            @Result(property = "id",column = "id", id = true),
            @Result(property = "roleName", column = "role_name"),
            @Result(property = "enabled", column = "enabled"),
            @Result(property = "createBy", column = "create_by"),
            @Result(property = "createTime", column = "create_time")
    })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值