我有一个属性,比如 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 直接支持它。
最佳答案
您想用您的多值电话属性创建一个单个替换。查看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 操作在开始编码之前提交文件。
关于java - LDAP 替换一个属性的列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14398933/