0

由于在编辑网页内容时,liferay 会自动创建文章的新版本,我想获取特定文章的最新版本。我使用动态查询如下:

DynamicQuery query = DynamicQueryFactoryUtil.forClass(JournalArticle.class, PortletClassLoaderUtil.getClassLoader());

query.setProjection(ProjectionFactoryUtil.max("version")); 
List<JournalArticle> jList = (List<JournalArticle>)JournalArticleLocalServiceUtil.dynamicQuery(query);

我在谷歌上搜索,通知ProjectionFactoryUtil.max("version")被使用了很多。但就我而言,抛出了异常:

"java.lang.Double cannot be cast to com.liferay.portlet.journal.model.JournalArticle"

我错过了什么吗?

4

2 回答 2

0

在 DynamicQuery 中使用ProjectionFactoryUtil.max("version")将返回双精度值,该值将是字段“版本”的最大值。您正在尝试将 double 类型的值转换为 JournalArticle,这就是为什么面临这个异常。

HTH 从手机发送。

于 2013-11-10T04:34:18.543 回答
0

至于获取最新版本的 JournalArticle 的目的: JournalArticleLocalServiceUtil有一个 API 方法fetchLatestArticle(具有一些不同的参数集,例如更喜欢已发表的文章而不是未发表的文章)。在 Liferay 5.x 中,它被称为getLatestArticle.

于 2015-09-07T07:07:13.043 回答