所以,我正在尝试在休眠和 SQL 服务器上运行 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 和 manifestRefs 都是字符串数组。不幸的是,当将大型数组传递给此查询时,它会失败,因为 SQL Server 不能接受超过 2100 个参数。
就像我想的那样,这是遗留代码,我无法重新编码以消除传入非常大的数组的可能性。
有没有办法(除了将其分解为许多较小的查询并迭代结果)来重写此查询,以免出现参数限制?