Unable to get work constraintDefinition

I have a custom validator, which validates string for regex pattern (later I’ll make it more complicated).
I want to use it for inline validating lot of local String variables in my project, without adding it to the domain model. So as I take, I have have to use programmatic constraint declaration API.

The problem is: I’m unable to get my custom validator to work with constraintDefinition method:

constraintMapping
    .constraintDefinition(StringValidator.class )
    .validatedBy( StringValidatorImpl.class  )

But if I try to do it in another way, it works like a charm:

constraintMapping
  .type(String.class)
  .constraint(new GenericConstraintDef<StringValidator>( StringValidator.class ) )*

Could you please explain why the second one works and first one not?

Full code

public class DynValidator {

public Validator getValidator() {

    HibernateValidatorConfiguration configuration = Validation
            .byProvider(HibernateValidator.class)
            .configure();

    ConstraintMapping constraintMapping = configuration.createConstraintMapping();

    constraintMapping
            .constraintDefinition(StringValidator.class )
            .validatedBy( StringValidatorImpl.class  )
    ;

    Validator validator = configuration.addMapping(constraintMapping)
            .buildValidatorFactory()
            .getValidator();

    return validator;
}

}