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