protected String canonicalizeDataAttributeForSql ( final String dataAttribute ) { if ( this . caseInsensitiveDataAttributes == null || this . caseInsensitiveDataAttributes . isEmpty ( ) || ! ( this . caseInsensitiveDataAttributes . containsKey ( dataAttribute ) ) ) { return dataAttribute ; } if ( this . dataAttributeCaseCanonicalizationFunctions == null || this . dataAttributeCaseCanonicalizationFunctions . isEmpty ( ) ) { return dataAttribute ; } CaseCanonicalizationMode canonicalizationMode = this . caseInsensitiveDataAttributes . get ( dataAttribute ) ; if ( canonicalizationMode == null ) { canonicalizationMode = getDefaultCaseCanonicalizationMode ( ) ; } final MessageFormat mf = this . dataAttributeCaseCanonicalizationFunctions . get ( canonicalizationMode ) ; if ( mf == null ) { return dataAttribute ; } return mf . format ( new String [ ] { dataAttribute } ) ; }
Canonicalize the data - layer attribute column with the given name via SQL function . This is as opposed to canonicalizing query attributes or application attributes passed into or mapped out of the data layer . Canonicalization of a data - layer column should only be necessary if the data layer if you require case - insensitive searching on a mixed - case column in a case - sensitive data layer . Careful though as this can result in table scanning if the data layer does not support function - based indices .