特定のユーザーによってアップロードされたWebコンテンツを返すJavaAPI呼び出しがliferayにあるかどうかを尋ねたいと思います。
たとえば、あるコンテンツをアップロードした1人のユーザーがいて、このコンテンツをポートレットに表示したいのですが、Javaを介してこれを行うにはどうすればよいですか?
特定のユーザーによってアップロードされたWebコンテンツを返すJavaAPI呼び出しがliferayにあるかどうかを尋ねたいと思います。
たとえば、あるコンテンツをアップロードした1人のユーザーがいて、このコンテンツをポートレットに表示したいのですが、Javaを介してこれを行うにはどうすればよいですか?
Web-content Display
ポートレット内に表示されるWebコンテンツについて具体的に話している場合は、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
ため、これらのバージョンはすべて同じJournalArticle
テーブルに格納されるため、単一のWebコンテンツのすべてのバージョンを取得できます。したがって、このために、、、、、などのdynamicQuery
フィールドの条件を追加できます。version
id
resourcePrimKey
articleId
groupId
companyId
または、より複雑なニーズがある場合は、liferayでcustom-sql-finderを作成して、LiferayDBテーブルの任意の組み合わせから目的のデータをフェッチできます。
ブログ、Wiki、ファイル、Webコンテンツなどのコンテンツについて話している場合は、それぞれを使用するか、特定のユーザーのアセットを取得するために*LocalServiceUtil
使用できます。AssetEntryLocalServiceUtil
したがって、上記のようにAPIをAssetEntryLocalServiceUtil
使用することもできます。DynamicQuery
コードは同じではないかもしれませんが、同じ行に沿っています。
このブログDynamicQuery
からAPIについて詳しく知ることができます。