abe :
@Basic
@Column(name = "MIN_SALARY")
private Integer minSalary;
@Basic
@Column(name = "MAX_SALARY")
private Integer maxSalary;
How can I create a validation where minimum salary cannot be greater than maximum salary in hibernate?
Alan Sereb :
Create a check constraint in your SQL database just to be 100% sure.
Create an interface that will describe the contract for the salary range.
public interface SalaryRange {
Integer getMinSalary();
Integer getMaxSalary();
}
- Create the annotation for validation
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Constraint(validatedBy = SalaryRangeValidator.class)
public @interface ValidateSalaryRange {
}
Make your entity implement
SalaryRange
interface and hook your fields to the interface getters.Create a validator for range validation logic.
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();
}
}
- Annotate your entity with
@ValidateSalaryRange
More info about Hibernate validator here
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=417603&siteId=1