hibernatevalidation器的注释,用于将来至少24小时的日期
我知道存在注释@Future。
如果我使用此注释注释字段
@Future private Date date;
日期必须是将来意味着在当前时刻之后。
现在我需要在当前时刻之后至少24小时validation该日期。
我该怎么做?
AfterTomorrow.java:
@Target({ FIELD, METHOD, PARAMETER }) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy = AfterTomorrowValidator.class) @Documented public @interface AfterTomorrow { String message() default "{AfterTomorrow.message}"; Class>[] groups() default {}; Class extends Payload>[] payload() default {}; }
AfterTomorrowValidator.java:
public class AfterTomorrowValidator implements ConstraintValidator { public final void initialize(final AfterTomorrow annotation) {} public final boolean isValid(final Date value, final ConstraintValidatorContext context) { Calendar c = Calendar.getInstance(); c.setTime(value); c.add(Calendar.DATE, 1); return value.after(c.getTime()); } }
此外,您可以在ValidationMessages.properties
添加默认的AfterTomorrow.message
消息
最后,注释你的领域:
@AfterTomorrow private Date date;
- Dropwizard仅在@POST上validation字段
- 使用Spring MVC的Hibernate-validator组
- 如何使用.properties文件或数据库中的正则表达式指定Hibernate“@Pattern”注释
- hibernate-validator中的exception。 嵌套exception是java.lang.NoClassDefFoundError:ConfigurationImpl
- Bean Validation Groupinheritance不适用于Group Sequence Provider
- Hibernate Validator:拦截无效值
- Springvalidation器:同时具有注释和validation器实现
- Hibernate Validator方法或构造函数validation
- Beanvalidation组序列不起作用