@Past @Future只針對Date類型的驗證,如果是String類型的驗證,則不適用。
其實可以新加一個方法返回Date類型,再配合@Future@Past 進行驗證。
@Future(message = "Invalid CN_ID_INFO.EXPIRE_DATE.")
private LocalDate getValidExpireDate() {
try {
return LocalDate.parse(this.dateString, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
} catch (Exception e) {
return null;
}
}
此方法對dateString進行解釋,返回LocalDate,如果dateString為空或格式錯誤,則返回空,再配合@Future 進行是否未來日期的驗證。