当前位置:   article > 正文

MybatisPlus报错Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3_mybatisplus报错indexoutofbounds

mybatisplus报错indexoutofbounds

省流:加了@Builder导致报错。

需再加两个注解@NoArgsConstructor@AllArgsConstructor

问题

报下标越界,持久化异常

  1. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
  2. ### Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index 3 out of bounds for length 3

分析

先排查sql是否错误。复制打印的sql,可以查询出数据。sql正确。

既然sql可以查到数据,那就只能从mybatis实体映射的角度出发来考虑

  1. @Data
  2. @Builder
  3. public class Org{
  4. private String id;
  5. private String orgCode;
  6. private String orgName;
  7. private Date createTime;
  8. private Date updateTime;
  9. }

因为这里使用了lombok插件。如果不使用lombok,实体类中只需要有getter和setter方法即可。

那很有可能是lombok导致。

看下编译后的class文件,发现只有一个全参构造,没有无参构造。

mybatis将查询结果映射成实体时是通过无参构造获得一个实例,然后调用setter方法将值存入字段

解决方法

在实体类增加注解@NoArgsConstructor@AllArgsConstructor,使编译器编译的时候提供出无参构造。

  1. @Data
  2. @Builder
  3. @NoArgsConstructor
  4. @AllArgsConstructor

注意:因为使用@Builder注解,所以光添加一个@NoArgsConstructor,程序会编译报错,builder需要一个全参构造,所以还得加上@AllArgsConstructor

记录项目Mybatis出现报错Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index 9 out of_初心绘流年的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/594025
推荐阅读
相关标签
  

闽ICP备14008679号