每次查询超过1000条就会报下面这样的错
所以我的解决思路是分批查询,废话不多说,上代码:
public List<User> queryUserByGidAndRoleModify(Map<String, Object> paramMap) {
Set<String> keySet = paramMap.keySet();
for (String key : keySet) {
String value = (String) paramMap.get(key);
if (StringUtils.isBlank(value)) {
continue;
}
String[] split = value.split(",");//字符串转数组
List<String> list = Arrays.asList(split);//再转集合
paramMap.put(key, list);//存进map里
}
List<String> clid= (List<String>) paramMap.get("dids");
if(clid != null){
int size=clid.size();//获取id的长度
int num=size/500+1;//每次查询不超过500条
if(num == 1 || clid == null){
return this.userMapper.queryUserByGridModify(paramMap);
}else{
for(int i=0; i<num;i++){
int start=i*500;
int end =(i+1)*500;
if(end >=size){
end = size;
}
List<String> strings=clid.subList(start,end);
paramMap.put("dids",strings);
}
}
}
return this.userMapper.queryUserByGridModify(paramMap);
}
希望能帮到你们。