// 得到此集合
List<OrgValidUser> orgValidUserList = orgValidUserVO.getData();
// 根据某些字段进行去重
List<String> employeeCodeList = orgValidUserList.stream().map(OrgValidUser::getEmployeeCode).distinct().collect(Collectors.toList());//已去重
// 或者in进行的sql
String newEnumAttributeByName = this.getNewEnumAttributeByName(employeeCodeList);
public String getNewEnumAttributeByName(List<String> list) {
StringBuilder sb = new StringBuilder("select * from contract where 1 = 1");
if (list.size() > 1000) {
int num = list.size() / 1000 + 1;
for (int i = 0; i < num; i++) {
// 若是最后一条
String paramStr = StringUtils.join(list.subList(1000 * i, (i + 1) == num ? list.size() : 1000 * (i + 1)), ",").replace(",", "','");
if (i == 0) {
sb.append(" or employee_code in ('").append(paramStr).append("') ");
} else {
sb.append(" or employee_code in ('").append(paramStr).append("') ");
}
}
} else {
sb.append(" or employee_code in ('").append(StringUtils.join(list, ",").replace(",", "','")).append("') ");
}
StringBuilder sbReturn = new StringBuilder ("select * from(" + sb.toString() + ")");
return sbReturn.toString();
}
解决oracle in限制1000 问题
最新推荐文章于 2024-09-08 17:57:47 发布