Novell JLDAPライブラリを使用してUpsertを実行しようとしていますが、残念ながら、この例を見つけるのに問題があります。現在、私はしなければなりません:
public EObject put(EObject eObject){
Subject s = (Subject) eObject;
//Query and grab attributes from subject
LDAPAttributes attr = resultsToAttributes(getLDAPConnection().get(s));
//No modification needed - return
if(s.getAttributes().equals(attr)){
return eObject;
} else {
//Keys:
//REPLACE,ADD,DELETE, depending on which attributes are present in the maps, I choose the operation which will be used
Map<String,LDAPAttribute> operationalMap = figureOutWhichAttributesArePresent(c.getAttributes(),attr);
//Add the Modifcations to a modification array
ArrayList<LDAPModification> modList = new ArrayList<LDAPModification>();
for(Entry entry: operationalMap.getEntrySet()){
//Specify whether it is an update, delete, or insert here. (entry.getKey());
modList.add(new LDAPModification(entry.getKey(),entry.getValue());
}
//commit
connection.modify("directorypathhere",modList.toArray(new LDAPModification[modList.size()]));
}
最初に顧客に問い合わせる必要がないようにしたいと思います。その結果、サブジェクトの属性も循環します。JNDIまたは別のライブラリがLDAPに対して複数のステートメントを実行せずに更新/挿入を実行できるかどうかを知っている人はいますか?