Как отфильтровать AssetType из AssetEntry в liferay 6.1?
Я использовал следующий код для извлечения всех статей журнала на основе определенной категории:
long catId = category.getCategoryId();
AssetEntryQuery assetEntryQuery = new AssetEntryQuery();
long[] anyCatIds = {catId};
assetEntryQuery.setAnyCategoryIds(anyCatIds);
// Line A
List<AssetEntry> assetEntryList = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery);
for(AssetEntry ae : assetEntryList)
{
// Line B
JournalArticleResource journalArticleResourceObj = JournalArticleResourceLocalServiceUtil.getJournalArticleResource(ae.getClassPK());
JournalArticle journalArticleObj = JournalArticleLocalServiceUtil.getArticle(themeDisplay.getParentGroupId(), journalArticleResourceObj.getArticleId());
journalArticleList.add(journalArticleObj.getArticleId());
}
Однако, так как AssetEntry
будет извлекать все записи, включая блоги и т. д., приведенный выше код вызовет исключение в Line B
если я добавлю запись в блоге, которая использует ту же категорию, так как запись в блоге не имеет JournalArticleResource
,
Итак, мне было интересно, если это возможно, чтобы фильтровать только тип JournalArticle будет выборка в Line A
тогда мне больше не нужно беспокоиться о Линии Б.
Я пытался, но пока не повезло.
У кого-нибудь есть идеи?
1 ответ
Решение
Использование assetEntryQuery.setClassName(JournalArticle.class.getName());