Я использую JacksonPropertyNodeNameProvider
для визуализации ошибки с фактическим json именем поля вместо java имени поля класса, т.е. account_id
вместо accountId
. Я добавил пользовательское ограничение, поскольку я хочу проверять несколько полей. Когда я добавляю пользовательскую ошибку
context.buildConstraintViolationWithTemplate("customField is a mandatory unique attribute")
.addPropertyNode("customField").addBeanNode().addConstraintViolation();
, она просто возвращает customField
в ошибке вместо поля custom_. Если я пытаюсь установить PropertNode в custom_field
, это приводит к ошибкам с ISE. Есть ли какая-то конфигурация, которую мне нужно установить, или что-то еще, что мне нужно сделать, чтобы это работало? Вот как я запускаю свой валидатор.
@Bean
public Validator validator(@Autowired ObjectMapper objectMapper) {
JacksonPropertyNodeNameProvider propertyNodeNameProvider = new JacksonPropertyNodeNameProvider(objectMapper);
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
.configure()
.propertyNodeNameProvider(propertyNodeNameProvider)
.buildValidatorFactory();
return validatorFactory.getValidator();
}