title: How to add multiple constraint violations for the same property node?
body: <p>I have a custom <code>ConstraintValidator</code>. What i want to do, is to add multiple constraint violations for the same property node, with the same message, and different dynamic payload. Is this possible?</p>
  
  <p>Custom annotation:</p>
  
  <pre><code>@Target(ElementType.FIELD)
  @Retention(RetentionPolicy.RUNTIME)
  @Constraint(validatedBy = CustomFieldConstraintValidator.class)
  public @interface CustomFieldConstraint {
      String message() default "message";
  
      Class&lt;?&gt;[] groups() default {};
  
      Class&lt;? extends Payload&gt;[] payload() default {};
  }
  </code></pre>
  
  <p>Custom constraint validator:</p>
  
  <pre><code>public class CustomFieldConstraintValidator implements ConstraintValidator&lt;CustomFieldConstraint, Integer&gt; {
      @Override
      public boolean isValid(Integer value, ConstraintValidatorContext context) {
          var valid = true;
          var hibernateConstraintValidatorContext = context.unwrap(HibernateConstraintValidatorContext.class);
          hibernateConstraintValidatorContext.disableDefaultConstraintViolation();
  
          if (value &gt; 0) {
              valid = false;
  
              hibernateConstraintValidatorContext.withDynamicPayload(Map.of("must_be_less_than", 0))
                  .buildConstraintViolationWithTemplate(context.getDefaultConstraintMessageTemplate())
                  .addPropertyNode("field")
                  .addConstraintViolation();
          }
  
          if (value &gt; 5) {
              valid = false;
  
              hibernateConstraintValidatorContext.withDynamicPayload(Map.of("must_be_less_than", 5))
                  .buildConstraintViolationWithTemplate(context.getDefaultConstraintMessageTemplate())
                  .addPropertyNode("field")
                  .addConstraintViolation();
          }
  
          return valid;
      }
  }
  </code></pre>
  
  <p>Validator test:</p>
  
  <pre><code>public class HibernateValidatorTest {
      private final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
  
      @Test
      void multipleFailuresForSameField() {
          var foo = new Foo(10);
  
          var constraintViolations = validator.validate(foo);
  
          assertEquals(2, constraintViolations.size());
      }
  
      public static class Foo {
          @CustomFieldConstraint
          private int field;
  
          public Foo(int field) {
              this.field = field;
          }
      }
  }
  </code></pre>
  
  <p>The test is failing with <code>expected: &lt;2&gt; but was: &lt;1&gt;</code>.</p>