Interfaz Mapper.getObjectList

/** 
 * Llena la lista con todos los objetos de entidad para el servicio
 * de búsqueda dado cualquiera de los objetos de entidad utilizados.
 * @param searchServiceId. el identificador del servicio de búsqueda
 * @param obj. El objeto de entidad del que se recuperan todos los
 *   demás
 * @return la lista de todos los objetos de entidad para este servicio
 *   de búsqueda dado un parámetro de objeto especificado.
 */  
List getObjectList(final SearchServiceKey serviceId, 
  final Object obj) throws AppException, 
    InformationalException;

Tal como se ha mencionado anteriormente, es posible que los datos de un servicio de búsqueda se recopilen de diversas entidades diferentes. También es posible que estas entidades estén relacionadas mediante complejas relaciones de clave foránea (por ejemplo, un registro de dirección podría estar relacionado con un registro de persona mediante un addressID que esté enlazado a través de un concernRoleAddressID, que está a su vez enlazado a través de un concernRoleID).

Las cosas se complican más cuando una de estas entidades se actualiza por medio de la aplicación. Cuando esto sucede, el Servidor de búsqueda genérico debe ser capaz de averiguar qué entidad ha sido afectada, en qué búsquedas está implicada y cómo está relacionada con todas las demás entidades incluidas en cada servicio de búsqueda.

Por último, uno o más documentos de uno o varios índices de búsqueda se tendrán que actualizar y la información de estos documentos se puede recopilar de diversas entidades, no solo de la que se acaba de modificar. No obstante, puesto que los servicios de búsqueda tienen un solo correlacionador, cada implementación del correlacionador solo tiene que preocuparse de ensamblar la información de su propio servicio de búsqueda.

El método de interfaz getObjectList aborda este problema. Dado un solo registro de entidad actualizado, getObjectList recopila todos los demás registros Dtls de entidad que se necesitarán para actualizar el documento correspondiente en el índice del servicio de búsqueda actual. El método getObjectList debe estar codificado de tal modo que ninguna de las entidades implicadas en un servicio de búsqueda se pueda utilizar como punto de partida de este proceso. getObjectList se encarga de:

Se llama al método mapper.getobjectList () en los siguientes procesos:

Tenga en cuenta que, para la extracción de base de datos inicial, el método de interfaz getObjectList se invoca para cada elemento captado de ReadmultiOperation; normalmente, esta será la entidad de nivel superior en este caso (por ejemplo, para una extracción de búsqueda de persona, todos los registros de persona se leerían en un readmulti; luego se llamará a getObjectList para que cada uno recupere toda la demás información necesaria para crear una SearchServiceRow).

Si se llama a este método para una entrada que no es relevante para este servicio de búsqueda, entonces la aplicación debe devolver simplemente una lista vacía.