Custom SQL search queries

InfoSphere® MDM allows clients to either write their own SQL queries to execute customized searches, or to use the existing search methods.

This section provides an overview of the search framework, and discusses how InfoSphere MDM implements the framework to provide this point of customization in the product and how the addition of custom operators for spec value searches are allowed for.

Search terminology

The following terms are used when discussing customizing SQL for searches:
Pre-written SQL
Specifies a complete and valid SQL statement that can be executed against a database. A collection of pre-written SQL statements can be initialized at the startup, and an appropriate SQL can be selected based on the search request input parameters.
SearchBy<predefined criteria> methods
Specifies the search methods defined in the component. These methods implement most of the search logic including the construction of SQL statement, determination of which input parameters to include or exclude from the search and which fields to return in the search as well as input parameter standardization. Examples of these methods include searchPersonByName, searchPersonByIdentification, searchOrganizationByName, and so on.
Criterion
Defines a single field that is being searched on. The ordered collection of all criteria, as they appear in the SQL, defines the SQL criteria.
Comparison Operator
Defines the comparison being performed for each criterion field. Examples include =, LIKE, and so on.
Search Input Parameters
Specifies the field values passed in a request as the search business object attributes and the primary fields to be searched on.
Supplementary Search Parameters
Specifies any additional parameters required to execute the search transaction. Those additional parameters are referred to as supplementary search parameters. The values for such parameters are not included in the search business object, instead are accessed from system configuration, for example, a properties file or the request header.