protected SqlWithParams buildSqlWithIndexedProps ( String sql ) { // look for quick exit if ( ! enableNamedQueries || ! ExtractIndexAndSql . hasNamedParameters ( sql ) ) { return null ; } String newSql ; List < Tuple > propList ; if ( cacheNamedQueries && namedParamSqlCache . containsKey ( sql ) ) { newSql = namedParamSqlCache . get ( sql ) ; propList = namedParamIndexPropCache . get ( sql ) ; } else { ExtractIndexAndSql extractIndexAndSql = ExtractIndexAndSql . from ( sql ) ; newSql = extractIndexAndSql . getNewSql ( ) ; propList = extractIndexAndSql . getIndexPropList ( ) ; namedParamSqlCache . put ( sql , newSql ) ; namedParamIndexPropCache . put ( sql , propList ) ; } if ( sql . equals ( newSql ) ) { return null ; } List < Object > indexPropList = new ArrayList < Object > ( propList ) ; return new SqlWithParams ( newSql , indexPropList ) ; }
Hook to allow derived classes to override behavior associated with the parsing and indexing of parameters from a given sql statement .