Java 传入请求的参数太多

Java 传入请求的参数太多,java,sql,sql-server,hibernate,orm,Java,Sql,Sql Server,Hibernate,Orm,我有以下异常SQLServerException:传入请求的参数太多。服务器最多支持2100个参数。减少参数数量并重新发送请求。在执行时,通过Hibernate选择查询。 这是我的问题 有人知道Hibernate中的解决方案吗? 非常感谢您的帮助,谢谢 解决这个问题的一个方法是将数据分块获取 List<List<Long>> partitions = new ArrayList<List<Long>>(); List<Long> buc

我有以下异常<代码>SQLServerException:传入请求的参数太多。服务器最多支持2100个参数。减少参数数量并重新发送请求。在执行
时,通过Hibernate选择
查询。
这是我的问题

有人知道Hibernate中的解决方案吗?
非常感谢您的帮助,谢谢

解决这个问题的一个方法是将数据分块获取

List<List<Long>> partitions = new ArrayList<List<Long>>();
List<Long> bucket = new ArrayList<>();
int count = 0;
for(Long id : ids){
count++;
if(count>1000){
count = 1;
partitions.add(bucket);
bucket = new ArrayList<>();
}
partitions.add(bucket);
}
List<PreStagePaymentData> data= new ArrayList<>();
List<PreStagePaymentData> temp;
for(List<Long> partition : partitions){
temp = findPreStageDataByPaymentIds(partition);
data.addAll(temp);
}
List partitions=new ArrayList();
List bucket=new ArrayList();
整数计数=0;
用于(长id:id){
计数++;
如果(计数>1000){
计数=1;
添加(bucket);
bucket=newarraylist();
}
添加(bucket);
}
列表数据=新的ArrayList();
列表温度;
对于(列表分区:分区){
temp=findPrestageDataByPaymentId(分区);
data.addAll(temp);
}

这是否回答了您的问题?如果确实需要一次检索这么多行,请将查询拆分为多个查询。