2016-05-11 57 views
0

我需要創建刪除功能來刪除導致我的自定義portlet的內容。以編程方式刪除所有JournalContent版本

我測試了以下句子,但所有這些句子都刪除了最新版本的內容,但其餘的仍然存在。

JournalArticleLocalServiceUtil.deleteArticle(themeDisplay.getCompanyId(), article.getArticleId(), sc); 
JournalArticleLocalServiceUtil.deleteJournalArticle(article); 
JournalArticleLocalServiceUtil.deleteArticle(article); 
JournalArticleLocalServiceUtil.deleteArticle(article, SLASH, sc); 
JournalArticleServiceUtil.deleteArticle(themeDisplay.getCompanyGroupId(), article.getArticleId(), SLASH, sc); 

Liferay API中是否有任何方法刪除所有版本,或者我必須遍歷版本並逐個刪除它?

親切的問候,

伊尼戈

+0

你試過\t'JournalArticleLocalServiceUtil.deleteArticle( \t \t \t長的groupId, String articleId,ServiceContext serviceContext)',根據源文件中的方法註釋,似乎這種方法刪除了與文章相關的所有資源。 –

+0

是的Pankajkumar ,,我試過了。實際上,這是我發佈的第一個示例,但僅刪除了最新版本 –

+0

您發佈的第一個示例具有第一個參數爲companyId,但此方法具有groupId。你錯誤地通過了公司嗎? –

回答

1

我有同樣的問題和與此代碼解決了這個問題:

List<JournalArticle> versiones=JournalArticleLocalServiceUtil.getArticles(groupId, articleId); 
for (int j = 0; j < versiones.size(); j++) { 
    JournalArticle version=versiones.get(j); 
    JournalArticleLocalServiceUtil.deleteArticle(groupId, version.getArticleId(), version.getVersion(), null,null) 
} 
+0

我也認爲這個解決方案,但我認爲它應該存在API中刪除所有版本的方法。 –