Как отфильтровать 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());

Другие вопросы по тегам