Many instances require searching for users and retrieving attributes from multiple sources and merging those results. There are two options for using multiple attribute sources. MergingPersonAttributeDaoImpl allows multiple child IPersonAttributesAttributeDao implementations to be queried and merges their results into a single result set. CascadingPersonAttributeDao is similar but it folds the results of previous IPersonAttributesAttributeDaos IPersonAttributeDaos into the query for the next IPersonAttributesAttributeDao in the list. Cascading is useful if an attribute from system A is needed to retrieve attributes from system B.
...
Designed to query multiple IPersonAttributesAttributeDaos IPersonAttributeDaos in order and merge the results into a single result set.
...
This configuration will query three IPersonAttributesAttributeDaos IPersonAttributeDaos in order and merge their results using the default IAttributeMerger which is the MultivaluedAttributeMerger.
...
Designed to query multiple IPersonAttributesAttributeDaos IPersonAttributeDaos in order and merge the results into a single result set. As each IPersonAttributesAttributeDao is queried the attributes from the first IPersonAttributes in the result set are used as the query for the next IPersonAttributesAttributeDao.
...
This configuration will query three IPersonAttributesAttributeDaos IPersonAttributeDaos in order and merge their results using the default IAttributeMerger which is the ReplacingAttributeAdder.
...
Property | Type | Default Value |
|
---|---|---|---|
defaultAttribute | String | username | The attribute name to use for calls to IPersonAttributes getPerson(String). A query Map is generated for these calls using the defaultAttribute and the value passed in. |
personAttributeDaos | List<IPersonAttributesAttributeDao> | null | A List of IPersonAttributesAttributeDaos IPersonAttributeDaos to be queried and have their results merged. |
attrMerger | IAttributeMerger | new ReplacingAttributeAdder() | The result set merging strategy to be used. See the Merging Strategies section for more information on available options. |
recoverExceptions | boolean | true | If an exception thrown by a child IPersonAttributesAttributeDao |
...