实际上要提到的问题是HV-874。Hibernate
Validator 5.2.x确实增加了对某些新Java
8日期/时间类型的支持。在这种情况下,我应该强调“一些”。特别
LocalDate不支持。的Javadocs
LocalDate说:
此类不存储或表示时间或时区。相反,它是对日期的描述,用于生日。如果没有其他信息(例如偏移或时区),则无法在时间线上表示时刻。
如果没有时间轴上的即时信息,就无法说出给定日期是在零件中还是在将来。首先,通过附加时区,可以陈述并回答这个问题。
如果你仍然觉得很有道理在您的使用情况下,使用
Past和
@Future约束
LocalDate你总是可以实现自己
ConstraintValidator的
LocalDate,并使用通过XML注册它
constraint-definition在约束映射文件元素看到这里。
如果您使用的是Hibernate Validator 5.2,则还可以使用Java
ServiceLoader方法来注册其他
ConstraintValidator实现-
请参见ConstraintDefinitionContributor。后者目前是特定于Hibernate
Validator的功能。



