select()報錯下標越界異常
/** ?*?名字里包含"A",且年齡小于20的 ?*?問題描述:執行,報錯?Cause:?java.lang.IndexOutOfBoundsException:?Index:?2,?Size:?2 ?*?????????去掉select("id",?"name"),執行正常,返回兩條記錄. ?*/ @Test public?void?selectByWrapperSuper1(){ ????QueryWrapper<User>?query?=?Wrappers.query(); ????QueryWrapper<User>?queryWrapper?=?query.select("id",?"name").like("name",?"A") ????????????.lt("age",?20); ????List<User>?userList?=?userMapper.selectList(queryWrapper); ????userList.forEach(System.out::println); }
2019-12-13
? ? ? ?同學找到原因了,是你在實體中加了@Builder注解的問題,把這個注解去掉就好使了,這個注解加上之后,應該就不生成作用域為public的構造方法了,而是通過建造者模式創建實體類。
2019-12-11
還有,你使用的是MP的什么版本?
2019-12-11
正常情況下不應該報錯啊,數據庫中有id字段嗎?還有你沒必要使用兩個QueryWrapper變量,用一個設置查詢條件即可。
2021-07-16
@Builder注解不用去掉,User實體類增加兩個注解即可
@AllArgsConstructor
@NoArgsConstructor
2019-12-12
https://github.com/AllenHv/test
?
2019-12-11
以上是我的pom
2019-12-11
有Id字段的,上面這串代碼可以查詢到結果.