2

我需要为 Liferay 文档库中的大量文件更改文档类型 (FileEntryType),但我无法这样做。

经过数小时的谷歌搜索、测试和熟悉 Liferay Github 存储库后,我决定来这里寻求帮助。

这是我用过的:

ServiceContext serviceContext = new ServiceContext();

List<DLFileEntry> filesToBeUpdated = DLFileEntryServiceUtil.getFileEntries(
                                                groupId, 0, fileEntryTypeId,
                                                0, 10000, OrderByComparator);

for (DLFileEntry file : filesToBeUpdated) {
    System.out.println("Changing file: "+ file.getName());

    serviceContext.setAttribute("fileEntryTypeId", fileEntryTypeId);

    DLAppServiceUtil.updateFileEntry(file.getFileEntryId(), file.getName(),
                        file.getMimeType(), null, file.getDescription(),
                        null, false, null, file.getSize(), serviceContext);
}

我用于测试的文件已正确找到。问题在于 for 循环中的更新:它总是抛出 PortletException。如何正确更改 FileEntryType?

4

2 回答 2

2

您还可以使用 DLAppServiceUtil 完成此操作,方法是设置您作为最后一个参数传入的 ServiceContext 中的字段:

sc.setAttribute("fileEntryTypeId", liferayDocumentType);

于 2014-01-07T18:01:26.473 回答
1

为什么要使用 DLAppServiceUtil.updateFileEntry(...)?DLFileEntryServiceUtil具有接受 long fileEntryTypeId 作为参数的updateFileEntry 方法。

于 2013-07-10T22:11:32.180 回答