Как отключить валидацию @Max только в определенных случаях?

Есть класс Weight, в котором хранится поле с максильным значением которое может быть 100. Используется в сотнях классах.

public class Weight {

    @Max(100)
    private BigDecimal value;
}

И есть класс Laptop в котором есть поле с типом Weight и хотелось бы исключить эту проверку на максимальное значение.

public class Laptop {

    @Valid
    private Weight weight ;
}

Можно было бы убрать Valid, но

  1. Сама валидация вызывается из другого класса где используется laptop как поле
  2. И в Weight есть другие поля и валидации.

Как можно исключить валидацию Max только для класса Laptop?


Ответы (1 шт):

Автор решения: Z.John

Используйте параметр groups аннотации. Это позволяет ставить маркеры применения. Например:

@Min(
        value = 18,
        message = "You have to be 18 to drive a car",
        groups = DriverChecks.class
)
public int age;

подробнее можно посмотреть здесь https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/chapter-groups.html#chapter-groups

→ Ссылка