我需要更改Liferay文档库中大量文件的文档类型(FileEntryType),但我无法这样做。
经过几个小时的googeling,测试和熟悉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?
答案 0 :(得分:2)
您也可以使用DLAppServiceUtil通过将传入的ServiceContext中的字段设置为最后一个参数来完成此操作:
sc.setAttribute(“fileEntryTypeId”,liferayDocumentType);
答案 1 :(得分:1)
为什么使用DLAppServiceUtil.updateFileEntry(...)?接受long fileEntryTypeId作为参数的DLFileEntryServiceUtil has updateFileEntry method。