Cet exemple de fragment de code et ce graphique de données permet d'effectuer une recherche en fonction de la valeur d'une propriété étendue.
L'exemple de fragment de code et le graphique de données ci-après montrent comment utiliser une base de recherche pour rechercher des entités avec la valeur d'une propriété étendue age comme critère de recherche.
Assurez-vous d'avoir bien lu les informations et effectué les étapes décrites dans la rubrique Prérequis pour la programmation, qui indique également la syntaxe valide pour les types de données de propriété.
Vous devez avoir des entités avec des propriétés étendues alimentées dans différentes bases de recherche. Pour un exemple de code expliquant comment créer des propriétés étendues, voir les rubriques ci-après.
Ajoutez le fragment de code ci-après à votre code d'application, puis remplacez les variables par les valeurs réelles à utiliser.
private static void searchWithSearchBase()
{
try
{
//Recherche de Person B
DataObject root = SDOHelper.createRootDataObject();
DataObject searchCtrl = SDOHelper.createControlDataObject(root, null,
SchemaConstants.DO_SEARCH_CONTROL);
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("uid");
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("sn");
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("cn");
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("age");
/**
* Vous pouvez ajouter des bases de recherche à la recherche comme indiqué ici :
* o=defaultWIMFileBasedRealm pour une recherche de référentiel de fichiers par défaut
* ou
* dc=yourco,dc=com pour une recherche dans le référentiel LDAP.
* Si aucune base de recherche n'est fournie, la recherche s'exécute sur toutes les entrées de base configurées.
*/
searchCtrl.getList(SchemaConstants.PROP_SEARCH_BASES).add("o=defaultWIMFileBasedRealm");
searchCtrl.setString(SchemaConstants.PROP_SEARCH_EXPRESSION,
"@xsi:type='PersonAccount' and age > 2");
root = service.search(root);
System.out.println("Output data graph" + printDO(root));
printIdentifiers(root);
}
catch(Exception e)
{
e.printStackTrace();
}
}
Vous pouvez valider les résultats de la recherche en vérifiant que les entités appartiennent à la base de recherche spécifiée (par exemple, o=defaultWIMFileBasedRealm pour une recherche de référentiel de fichiers par défaut ou dc=yourco,dc=com pour une recherche de référentiel LDAP).
Graphique de données de sortie pour l'utilisation d'une base de recherche pour rechercher des entités en fonction de la valeur d'une propriété étendue :
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sdo="commonj.sdo" xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:Root>
<wim:entities xsi:type="wim:PersonAccount">
<wim:identifier externalName="uid=personb,o=defaultWIMFileBasedRealm"
repositoryId="InternalFileRepository"
uniqueId="9e27cd3b-6300-4264-a4ac-768dd1092d11"
uniqueName="uid=personb,o=defaultWIMFileBasedRealm"/>
<wim:uid>personb</wim:uid>
<wim:cn>Person B</wim:cn>
<wim:sn>PersonBLastName</wim:sn>
</wim:entities>
</wim:Root>
</sdo:datagraph>