首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Hibernate中进行比较验证

如何在Hibernate中进行比较验证
EN

Stack Overflow用户
提问于 2020-02-11 20:18:07
回答 1查看 99关注 0票数 2
代码语言:javascript
复制
@Basic
@Column(name = "MIN_SALARY")

private Integer minSalary;

@Basic
@Column(name = "MAX_SALARY")

  private Integer maxSalary;

如何在hibernate中创建最低工资不能大于最高薪资的验证?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-11 20:43:50

  1. 在您的SQL数据库中创建一个检查约束,只需100%确定。
  2. 创建一个描述薪资范围的合同的接口。
代码语言:javascript
复制
public interface SalaryRange {
    Integer getMinSalary();
    Integer getMaxSalary();
}
  1. 创建用于验证的注释
代码语言:javascript
复制
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Constraint(validatedBy = SalaryRangeValidator.class)
public @interface ValidateSalaryRange {
}
  1. 让实体实现SalaryRange接口,并将字段连接到接口getter。
  2. 为范围验证逻辑创建一个验证器。
代码语言:javascript
复制
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();
    }
}
  1. @ValidateSalaryRange注释您的实体

有关Hibernate验证器这里的更多信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60176730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档