Как сравнить валидацию в Hibernate - PullRequest
2 голосов
/ 11 февраля 2020
@Basic
@Column(name = "MIN_SALARY")

private Integer minSalary;

@Basic
@Column(name = "MAX_SALARY")

  private Integer maxSalary;

Как создать проверку, в которой минимальная зарплата не может превышать максимальную зарплату в спящем режиме?

1 Ответ

1 голос
/ 11 февраля 2020
  1. Создайте ограничение check в вашей базе данных SQL просто для уверенности на 100%.

  2. Создайте интерфейс, который будет описывать договор на диапазон зарплат.

public interface SalaryRange {
    Integer getMinSalary();
    Integer getMaxSalary();
}
Создание аннотации для проверки
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Constraint(validatedBy = SalaryRangeValidator.class)
public @interface ValidateSalaryRange {
}

Заставьте вашу сущность реализовать интерфейс SalaryRange и подключите ваши поля к получателям интерфейса.

Создайте валидатор для логики проверки диапазона c.

public class SalaryRangeValidator implements ConstraintValidator<ValidateSalaryRange, SalaryRange> {

    @Override public void initialize(ValidateSalaryRange date) {}

    @Override
    public boolean isValid(SalaryRange range, ConstraintValidatorContext ctx) {
        return range.getMinSalary() < range.getMaxSalary();
    }
}
Аннотируйте свою сущность с помощью @ValidateSalaryRange

Подробнее о валидаторе Hibernate здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...