2013-01-18 15 views
1

我有一個屬性,如telephonenumber,它在一個人身上出現多次。現在我想通過新號碼列表,以取代所有的數字:LDAP替換一個屬性的列表值

<person> 
<telephonnumber>56789</telephonnumber> 
<telephonnumber>78901</telephonnumber> 
</person> 

我怎樣才能做到這一點在Java中:

<person> 
<telephonnumber>12345</telephonnumber> 
<telephonnumber>23456</telephonnumber> 
</person> 

被取代?

使用

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直接支持它。

回答

4

你想創建一個取代你的多值電話屬性。請參閱。

// 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操作。

+0

+1,但「telephoneNumber」示例更重要。 – EJP