我有一个属性,例如telephonenumber
,它出现在一个人身上好几次。现在我想用一个新数字列表替换所有数字:
<person>
<telephonnumber>12345</telephonnumber>
<telephonnumber>23456</telephonnumber>
</person>
替换为:
<person>
<telephonnumber>56789</telephonnumber>
<telephonnumber>78901</telephonnumber>
</person>
我怎样才能用Java做到这一点?
使用
mods.add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("telephonnumber", "56789")));
mods.add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("telephonnumber", "78901")));
最终将所有值替换为最后一个ModificationItem。好吧,我可以通过删除所有数字,并从列表中添加所有新值来解决。但我认为Java LDAP直接支持它。
答案 0 :(得分:4)
您希望使用多值电话属性创建 单 替换。请参阅Oracle LDAP attributes tutorial。
// Create a multivalued attribute that has four String values
BasicAttribute oc = new BasicAttribute("objectClass", "top");
oc.add("person");
oc.add("organizationalPerson");
oc.add("inetOrgPerson");
提示:在开始编码之前,首先通过LDIF文件尝试LDAP操作。