Spring Недопустимое свойство класса бина при использовании беглых геттеров

Я не могу отклонить значения по имени поля во время проверки в моем пользовательском валидаторе, который реализует org.springframework.validation.Validator. Единственное отличие от стандартного случая состоит в том, что я использую беглые геттеры в своем доменном объекте.

@Value
@Builder(toBuilder = true)
@Validated    
public class Customer {        
    private String nick;        
    // Lombok generated fluent getters
}

Регистрация моего собственного валидатора, как это:

@InitBinder
public void dataBinding(WebDataBinder binder) {
    binder.addValidators(CustomerRequestValidator);
}

Выполнение некоторой пользовательской проверки в валидаторе, но я не могу отклонить любое значение по полю в org.springframework.validation.Errors. Всегда получаю это:

org.springframework.beans.NotReadablePropertyException: Invalid property 'nick' of bean class [my.package.Customer]: Bean property 'nick' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

Как я могу получить эти имена полей в класс бина?

По иронии судьбы, если проверка выполняется на полях с @NotNull до пользовательской проверки, ошибки заполняются с правильным именем поля. Я думаю, что исключение возникает, когда Spring пытается получить значение по имени поля и не может найти поле.

Есть ли у вас какие-либо советы, как это сделать? Возможно, какой-нибудь способ настроить Spring (WebDataBinder) для использования беглых геттеров?

0 ответов

Другие вопросы по тегам