@Override public boolean isValid(String value, ConstraintValidatorContext context) { context.disableDefaultConstraintViolation(); context.buildConstraintViolationWithTemplate( context.getDefaultConstraintMessageTemplate() ) .addPropertyNode( "myNode1" ) .addPropertyNode( "myNode2" ) .inContainer( Map.class, 1 ) .inIterable() .atKey( "key" ) .addBeanNode() .addConstraintViolation(); context.buildConstraintViolationWithTemplate( context.getDefaultConstraintMessageTemplate() ) .addPropertyNode( "myNode3" ) .inContainer( List.class, 0 ) .inIterable() .atIndex( 3 ) .addBeanNode() .addConstraintViolation(); context.buildConstraintViolationWithTemplate( context.getDefaultConstraintMessageTemplate() ) .addPropertyNode( "myNode4" ) .inContainer( Optional.class, 0 ) .addPropertyNode( "myNode5" ) .addConstraintViolation(); return false; } }