Можно ли отключить определенные ограничения/аннотации для каждого класса во время выполнения? Например, если бы я хотел включить проверку @NotNull в поле firstName , возможно ли это?
Нет, это не так. Проверка боба не определяет такую функцию. В Hibernate Validator HV-98 есть открытая проблема, в которой обсуждается возможность перезагрузки метаданных, но даже там вам потребуется перестроить фабрику валидаторов.
Вы можете переопределить аннотации через конфигурацию XML, а затем воссоздать экземпляр Validator(Factory)
с использованием различных конфигураций в то время, но это, вероятно, нелегко.
Это позволит сделать тестирование, чтобы увидеть определенное ограничение, является ли срабатывает правильно проще, так как я мог отключить все другие ограничения, и просто проверить, что одно ограничение.
Если речь идет о тестировании, вы можете использовать Validator.validateValue
, чтобы просто подтвердить данное поле. Кроме этого, если вы проверите весь граф объектов и получите набор нарушений ограничений, вы можете просто перебрать их и проверить метаданные. В метаданных достаточно информации, чтобы убедиться, что определенные ограничения выполнялись и не выполнялись.
Perfect - Validator.validateValue - именно то, что я искал. Благодарю. – Ole