在Liferay中添加新的Web内容版本

时间:2014-08-28 12:46:45

标签: java liferay portlet

我想在Liferay中编辑webcontent(journalarticle),并从自定义portlet创建一个新版本。我使用以下相关参数调用JournalArticleLocalServiceUtil.addArticle()方法:

articleId = article.getArticleId();
autoArticleId = false;
version = article.getVersion()+0.1;

所以旧文章ID,版本增加了。

此代码适用于LR 6.1.30EE,但在6.1.20EE和6.1.1CE中我得到了DuplicateArticleIdException。这是早期版本中的错误吗?是否有解决方法或其他方法以编程方式创建现有webcontent的新版本?

小问题:增加版本的正确方法是什么?上述+0.1方式是从v1.1 v1.200000000000002创建的,但最好是v1.2。

注意: 使用新版本的updateArticle()方法也不起作用,它会抛出ArticleVersionException。这似乎是正确的行为,因为它应该更新现有的内容。

2 个答案:

答案 0 :(得分:0)

好的,我同时找到了一个解决方案,感谢Liferay论坛的Andew Jardin的一些灵感。

解决方案非常简单:调用JournalArticleLocalServiceUtil.updateArticle(),但使用旧版本。 Liferay会自动决定何时创建新版本,并负责分配正确的版本。

答案 1 :(得分:0)

我通过这样做解决了这个问题,

double version =    article.getVersion();
            version = MathUtil.format(version + 0.1, 1, 1);
            article.setVersion(version);