JPA中动态SQL的查询条件为in中的长度大于1000时 报错处理逻辑:
测试方法:
@Test
public void contextLoads2() {
Integer pageNum = 1; // 当前页
Integer pageSize = 100; // 页大小
// 模拟构造参数
List<String> paramList = Lists.newArrayList();
for (int i = 0; i <= 1999; i++) {
paramList.add(116 + i + "");
}
// 分页处理(从0开始)
Pageable pageable = new PageRequest(pageNum - 1, pageSize);
Page<Emp> page = empDao.findAll((root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
List<List<String>> list = new ArrayList<>();
if (CollectionUtils.isNotEmpty(paramList)) {
int count = 999;
String paraStr = "";
Integer dealCount = paramList.size() % count == 0 ? paramList.size() /