1

所以,我正在尝试在休眠和 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 个参数。

就像我想的那样,这是遗留代码,我无法重新编码以消除传入非常大的数组的可能性。

有没有办法(除了将其分解为许多较小的查询并迭代结果)来重写此查询,以免出现参数限制?

4

0 回答 0