Sql server 使用hibernate在SQLServer中绕过2100参数限制

Sql server 使用hibernate在SQLServer中绕过2100参数限制,sql-server,hibernate,hql,Sql Server,Hibernate,Hql,所以,我尝试在hibernate和SQL server上运行HQL查询 该查询获取文件列表和显示列表。表现形式与文件相关联。查询的目的是从链接到不在显示列表中的显示的文件列表中查找所有文件。查询如下所示: SELECT file.fileref from com.project.FileImpl f, com.project.ManifestationFileImpl mf WHERE f.fileref IN filerefs AND mf.manifestionRef NOT IN ma

所以,我尝试在hibernate和SQL server上运行HQL查询

该查询获取文件列表和显示列表。表现形式与文件相关联。查询的目的是从链接到不在显示列表中的显示的文件列表中查找所有文件。查询如下所示:

SELECT file.fileref from com.project.FileImpl f, com.project.ManifestationFileImpl mf 
WHERE f.fileref IN filerefs 
AND mf.manifestionRef NOT IN manifestationRefs 
AND f.fileRef= mf.fileRef
其中fileRefs和manifestationRefs都是字符串数组。不幸的是,当将大型数组传递到此查询时,它会失败,因为SQL server不能接受超过2100个参数

尽管我很想,但这是遗留代码,我无法重新编码以消除传入非常大的数组的可能性


是否有一种方法(除了将其分解为许多较小的查询并迭代结果)重写此查询以避免出现参数限制

您可以尝试添加此链接中建议的表值函数