Валидатор гибернации не найден при использовании пользовательской проверки - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать собственный валидатор для значений перечисления. Должен ли я регистрировать эти пользовательские валидаторы в каком-нибудь файле? Если я удалю свой собственный валидатор, все будет работать отлично.

Но я всегда получаю такую ​​ошибку:

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 

Код такой:

@Entity
@Table(name = "products")
@Access(AccessType.FIELD)
@Schema(name = "Product", description = "Represents a product in the inventory")
public class Product extends PanacheEntityBase {

...
    @Column(name = "category")
    @Enumerated(EnumType.STRING)
    @StringEnumeration(enumClass = Category.class)
    @Schema(required = true, example = "GRAIN")
    private Category category;

...
}
@ApplicationScoped
public class EnumnValidator implements ConstraintValidator<StringEnumeration, String> {



  @Override
  public boolean isValid(String value, ConstraintValidatorContext context) {
    ...
  }

}
@Documented
@Constraint(validatedBy = EnumnValidator.class)
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.PARAMETER,
        ElementType.CONSTRUCTOR })
@Retention(RetentionPolicy.RUNTIME)
public @interface StringEnumeration {

    String message() default "{com.xxx.bean.validation.constraints.StringEnumeration.message}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    Class<? extends Enum<?>> enumClass();

}
...