Liferay 6 で動的クエリを作成しているときに問題が発生しJournalArticles
ましたview count
。閲覧回数は別表(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
。
-callを削除するとaddOrder
、このエラーは消えます。メインクエリが認識できるように、注文ステートメントを追加するにはどうすればよいasset.viewCount
ですか?