Código de ejemplo para buscar basándose en un valor de propiedad extendida

Utilice el fragmento de código y el gráfico de datos de ejemplo para realizar una búsqueda basada en el valor de una propiedad extendida.

El fragmento de código y el gráfico de datos siguientes muestran cómo utilizar una base de búsqueda para buscar entidades con el valor de una propiedad extendida age como criterio de búsqueda.

Requisitos previos

Asegúrese de leer la información y completar los pasos que se describen en el tema Requisitos previos de programación, que también describe la sintaxis válida para los tipos de datos de propiedad.

Debe tener entidades con propiedades extendidas que llenen diferentes bases de búsqueda. Para el código de ejemplo sobre cómo crear propiedades extendidas, consulte los temas siguientes

Código de ejemplo

Añada el siguiente fragmento de código al código de aplicación y sustituya las variables por los valores reales que desea utilizar.

private static void searchWithSearchBase() 
{
    try
    {
        // Buscar 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");
        /**
         * Puede añadir bases de búsqueda a la búsqueda como se describe aquí:
         * o=defaultWIMFileBasedRealm para la búsqueda de depósito de archivos predeterminada
         * o
         * dc=yourco,dc=com para la búsqueda de depósito LDAP.
         * Si no se proporciona una base de búsqueda, la búsqueda realiza en todas las entradas de base configuradas.
         */
        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();
    }
}

Puede validar los resultados de búsqueda comprobando que las entidades pertenecen a la base de búsqueda especificada; por ejemplo o=defaultWIMFileBasedRealm para una búsqueda de depósito de archivos predeterminada o dc=yourco,dc=com para la búsqueda de depósito LDAP.

Gráficos de datos de salida

Gráfico de datos de salida para utilizar una base de búsqueda para buscar entidades basadas en el valor de una propiedad extendida:

<?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>


Condiciones de uso | Comentarios