Создайте ограничение check в вашей базе данных SQL просто для уверенности на 100%.
Создайте интерфейс, который будет описывать договор на диапазон зарплат.
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 здесь