Если вы конкретно говорите о веб-контенте, который отображается внутри портлета Web-content Display
, то вы можете использовать JournalArticleService
и JournalArticleLocalService
API для получения контента в зависимости от пользователя.
До Liferay 6.0 веб-контент назывался JournalArticle
и, следовательно, имя API не изменилось.
Так, например:
Вы можете использовать DynamicQuery
API следующим образом:
long userId = 10987L; // ofcourse you need to find this
DynamicQuery dynamicQuery = JournalArticleLocalServiceUtil.dynamicQuery();
dynamicQuery.add(RestrictionsFactoryUtil.eq("userId", userId));
int startOfList = 0;
int endOfList = 1000;
// if you want all the JournalArticle retrieved then use:
// int endOfList = QueryUtil.ALL_POS;
// this will retrieve the list of webcontents
List<JournalArticle> articles = (List<JournalArticle>) JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery, startOfList, endOfList);
Приведенный выше код извлечет все JournalArticle
, поэтому вы получите все версии одного веб-контента, поскольку все эти версии хранятся в одной и той же таблице JournalArticle
. Поэтому для этого вы можете добавить условия в dynamicQuery
для таких полей, как version
, id
, resourcePrimKey
, articleId
, groupId
, companyId
и т. д.
Или, если у вас есть более сложные потребности, вы можете создать custom-sql-finder в liferay для извлечения нужных данных из любой комбинации таблиц базы данных Liferay.
Если вы говорите о содержимом, таком как блоги, вики, файлы, веб-контент и т. д., то либо используйте соответствующие *LocalServiceUtil
, либо вы можете использовать AssetEntryLocalServiceUtil
для получения ресурсов для конкретного пользователя.
Таким образом, с AssetEntryLocalServiceUtil
вы также можете использовать DynamicQuery
API, как показано выше. Код может быть не таким, но будет в том же духе.
Вы можете узнать больше об DynamicQuery
API из этого блог.
person
Prakash K
schedule
18.01.2013