我有一个Document,我必须在其中创建一个填充二进制内容的新MIMEEntity(字段)。 我用
MIMEEntity mimeE = doc.getMIMEEntity(fieldName);
创建它。当然,当我使用现有文档重复此项目时,我会在保存文档时收到项目已存在的错误。
MIMEEntity有一个子实体,所以我的方法是在删除项目之前将其移除(这将无效并解决我的问题);
if (mimeE != null) {
MIMEEntity child = mimeE.getFirstChildEntity();
while(child!=null){
MIMEEntity ent = child.getNextEntity();
child.remove();
child.recycle();
child = ent;
}
mimeE.remove();
mimeE.recycle();
doc.removeItem(fieldName);
}
我最终删除项目本身的行崩溃了服务器。 我不知道如何完全删除该项(MIME)只是为了满足Domino的需求,当我创建一个“新”的/用新内容替换旧的那个时。)
任何最好的实践都将受到赞赏。
答案 0 :(得分:3)
我找到了一种安全删除项目的方法:
MIMEEntity mimeE = doc.getMIMEEntity(fieldName);
if (mimeE != null) {
MIMEEntity mime = mimeE.getFirstChildEntity();
if (mime != null) {
mime.remove();
}
} else {
mimeE = doc.createMIMEEntity(fieldName);
}
MIMEEntity mime = mimeE.createChildEntity();
不确定这是否适用于所有情况。