Я пытаюсь создать собственный валидатор для значений перечисления. Должен ли я регистрировать эти пользовательские валидаторы в каком-нибудь файле? Если я удалю свой собственный валидатор, все будет работать отлично.
Но я всегда получаю такую ошибку:
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();
}