Используйте org.hibernate.validator.internal.cfg.context для создания ограничения на метод - PullRequest
0 голосов
/ 17 марта 2020

В настоящее время я работаю над рефакторингом фрагмента кода, потому что, похоже, у ребят из спящего режима плохой послужной список с совместимостью версий.

Сначала мы использовали hibernate-validator-5.0.2.Final, и мне нужно обновить его до hibernate-validator-6.0.16.Final. Классы publi c, например: ConfiguredConstraint.java, были изменены на non-publi c, и теперь они, похоже, больше не работают!

Я видел много новых методов и классов, но немного застрял с использованием.

Мне нужно создать ограничение на method, и сейчас существует N методов, которые я не могу определить, какой использовать из этого пакета: org.hibernate.validator.internal.cfg.context

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

TIA

1 Ответ

0 голосов
/ 17 марта 2020

Вы не должны использовать вещи из пакета internal напрямую.

См. Пример 12.8 из https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section -programmati c -api .

HibernateValidatorConfiguration configuration = Validation
        .byProvider( HibernateValidator.class )
        .configure();

ConstraintMapping constraintMapping = configuration.createConstraintMapping();

constraintMapping
    .type( Car.class )
        .constructor( String.class )
            .parameter( 0 )
                .constraint( new SizeDef().min( 3 ).max( 50 ) )
            .returnValue()
                .valid()
        .method( "drive", int.class )
            .parameter( 0 )
                .constraint( new MaxDef().value( 75 ) )
        .method( "load", List.class, List.class )
            .crossParameter()
                .constraint( new GenericConstraintDef<>(
                        LuggageCountMatchesPassengerCount.class ).param(
                            "piecesOfLuggagePerPassenger", 2
                        )
                )
        .method( "getDriver" )
            .returnValue()
                .constraint( new NotNullDef() )
                .valid();

И затем вы строите свой ValidatorFactory из этой конфигурации.

...