我想询问liferay中是否有任何Java API调用返回由特定用户上传的Web内容。
例如,我有一个用户上传了一些内容,我想在portlet中显示这个内容,我该怎么做呢?
答案 0 :(得分:2)
如果您专门讨论Web-content Display
portlet中显示的网络内容,那么您可以使用JournalArticleService
和JournalArticleLocalService
API来获取内容,具体取决于用户。<登记/>
在Liferay 6.0之前,Web内容称为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
,因此您将获得单个Web内容的所有版本,因为所有这些版本都存储在同一JournalArticle
表中。因此,您可以为dynamicQuery
,version
,id
,resourcePrimKey
,articleId
,{{}等字段添加条件groupId
1}}等等。
或者,如果您有更复杂的需求,可以在liferay中创建custom-sql-finder以从Liferay数据库表的任意组合中获取所需数据。
如果您正在讨论博客,维基,文件,Web内容等内容,则可以使用各自的companyId
,也可以使用*LocalServiceUtil
来获取特定用户的资源。
因此,对于AssetEntryLocalServiceUtil
,您也可以使用AssetEntryLocalServiceUtil
API,如上所示。代码可能不一样,但也是一样的。
您可以从blog了解DynamicQuery
API的更多信息。