gpt4 book ai didi

java - 使用 Liferay 的 DynamicQuery 按另一个表排序

转载 作者:行者123 更新时间:2023-12-01 15:16:15 25 4
gpt4 key购买 nike

我在 Liferay 6 中进行动态查询时遇到问题。我正在尝试对订单 JournalArticles 进行查询基于他们的view count 。 View 计数在另一个表 ( AssetEntry ) 中指定。

我被这个问题困扰了:

DynamicQuery query = DynamicQueryFactoryUtil.forClass(
JournalArticle.class, "articleParent", PortalClassLoaderUtil.getClassLoader());

//adding criterions
query.add(...);

DynamicQuery dq0 = DynamicQueryFactoryUtil.forClass(AssetEntry.class, "asset",
PortalClassLoaderUtil.getClassLoader())
.setProjection(ProjectionFactoryUtil.property("asset.classPK"))
.add(PropertyFactoryUtil.forName("asset.companyId")
.eqProperty("articleParent.companyId"))
.add(PropertyFactoryUtil.forName("asset.groupId")
.eqProperty("articleParent.groupId"));

query.add(PropertyFactoryUtil.forName("articleParent.resourcePrimKey").in(dq0))
.addOrder(OrderFactoryUtil.desc("asset.viewCount"));

这样我收到一条错误消息:could not resolve property: asset of: com.liferay.portlet.journal.model.impl.JournalArticleImpl .

如果我删除 addOrder -调用,此错误消失。我应该如何添加 order 语句以便主查询知道 asset.viewCount

最佳答案

AssetEntryQuery assetEntryQuery = new AssetEntryQuery();
assetEntryQuery.setClassName(JournalArticle.class.getName());
assetEntryQuery.setXXX //adding criterions
assetEntryQuery.setOrderByCol1("viewCount");
List<AssetEntry> assetEntries = AssetEntryServiceUtil.getEntries(assetEntryQuery);

关于java - 使用 Liferay 的 DynamicQuery 按另一个表排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11559229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com