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);
これはうまくいきます!
そして今、2 つのクエリの結果を結合する必要がありますが、結果の 1 つは DynamicQuery を使用したもので、もう 1 つは AssetEntryQuery を使用したものであるため、これを行う方法がわかりません。
DynamicQuery だけで 2 つのクエリを作成することは可能ですか? => カテゴリの制限を追加するにはどうすればよいですか?
AssetEntryQuery だけで 2 つのクエリを作成することは可能ですか? => タイトルとフォルダの制限を追加するにはどうすればよいですか?