首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Liferay DynamicQuery - xPath和数组比较

Liferay DynamicQuery - xPath和数组比较
EN

Stack Overflow用户
提问于 2012-08-10 12:19:34
回答 2查看 485关注 0票数 0

我的最终目标是获得可以显示我的文章的plid和portletId (如果可能的话,也可以使用任何类型的条目)。

我让sql查询返回任何可用于显示文章portlet。但是当我不得不使用dynamicQuery来获得相同的结果时,我遇到了xPath和数组比较的问题,请帮助!

代码语言:javascript
复制
SELECT * FROM portletpreferences pr
WHERE pr.preferences != '<portlet-preferences />' AND pr.ownerid = 0 AND pr.portletid ilike '%_INSTANCE_%' AND pr.plid IN(
    SELECT layout.plid FROM layout 
          WHERE layout.type_ = 'portlet' AND layout.groupid = 19 AND layout.hidden_ is false)
AND pr.portletpreferencesid IN (
        SELECT pr.portletpreferencesid FROM portletpreferences pr
          WHERE 'true' = ANY(xpath('//preference[name="anyAssetType"]/value/text()', XMLPARSE(DOCUMENT pr.preferences))::text[])
               OR (SELECT (array(SELECT id_ FROM journalstructure))::text[]) &&  xpath('//preference[name="classTypeIds"]/value/text()', XMLPARSE(DOCUMENT pr.preferences))::text[] )
EN

回答 2

Stack Overflow用户

发布于 2012-08-13 18:39:09

如果您坚持使用相同的查询,那么通过创建自定义查找器而不是使用DynamicQuery,在liferay中直接使用此查询与Custom-SQL。这将为您在直接使用任何类型的SQL查询时提供很大的灵活性。

我不认为这个查询可以转换成DynamicQuery,但是如果你设法转换它,那么请在这里发布它:-)

票数 0
EN

Stack Overflow用户

发布于 2012-08-20 21:53:09

DynamicQuery非常强大,参见我的答案如何使用特定的JournalArticles查找布局。我认为您的需求类似于这个:Liferay: How to find all Layouts with the specific JournalArticle in AssetPublisher portlets?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11895434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档