我在 Liferay 6 中遇到动态查询问题。我正在尝试进行查询以获取已确定标题、位于特定文件夹中且属于特定类别的图像(来自 Liferay 文档和媒体存储库) .
对于获取具有标题且位于特定文件夹中的图像的查询,我有这个:
...
DynamicQuery dynamicQueryFile = DynamicQueryFactoryUtil.forClass(DLFileEntry.class);
dynamicQueryFile.add(RestrictionsFactoryUtil.eq("groupId", groupId) );
dynamicQueryFile.add(RestrictionsFactoryUtil.ilike("title", "%"+titlefilter+"%") );
dynamicQueryFile.add(RestrictionsFactoryUtil.in("folderId", toArray(folders)));
List resultsFiles = new ArrayList();
resultsFiles.addAll(DLFileEntryLocalServiceUtil.dynamicQuery(dynamicQueryFile));
这行得通!
对于获取特定类别的图像的查询,我有这个:
...
AssetEntryQuery queryCategoriesFilter = new AssetEntryQuery();
long[] groupIds = {groupId};
queryCategoriesFilter.setGroupIds(groupIds);
ClassName nameClass = ClassNameLocalServiceUtil.getClassName(DLFileEntry.class.getName());
long classNameIdDLFileEntry = nameClass.getClassNameId();
long[] types = {classNameIdDLFileEntry};
queryCategoriesFilter.setClassNameIds(types);
queryCategoriesFilter.setAllCategoryIds(StringtoLongArray(categoryIds));
List<AssetEntry> results = AssetEntryLocalServiceUtil.getEntries(queryCategoriesFilter);
这行得通!
现在,我需要合并两个查询的结果,但是由于其中一个结果是 DynamicQuery 而另一个是 AssetEntryQuery,所以我不知道该怎么做。
是否可以仅使用 DynamicQuery 进行两个查询?=> 如何添加类别的限制?
是否可以仅使用 AssetEntryQuery 进行两个查询?=> 如何添加标题和文件夹的限制?