Java 如何仅在用户插入日期时@Valid日期(Spring MVC+;Hibernate)

Java 如何仅在用户插入日期时@Valid日期(Spring MVC+;Hibernate),java,hibernate,date,spring-mvc,annotations,Java,Hibernate,Date,Spring Mvc,Annotations,我有一个POJO,在表单中用作modelAttribute,它允许用户在DB上搜索记录: public class FatherSearch extends Father{ ... @Past @DateTimeFormat(pattern = "dd/MM/yyyy") private Date dataDiNascita; ... } 我必须检查用户插入的日期是否是过去的日期;如果用户插入日期,我应该检查它 问题在于,由于dataDiNasc

我有一个POJO,在表单中用作
modelAttribute
,它允许用户在DB上搜索记录:

public class FatherSearch extends Father{
    ...
    @Past   
    @DateTimeFormat(pattern = "dd/MM/yyyy")
    private Date dataDiNascita; 
    ...
}
我必须检查用户插入的日期是否是过去的日期;如果用户插入日期,我应该检查它

问题在于,由于dataDiNascita是一个
日期
它不能为空,当用户提交表单时没有填写日期字段,他们会得到错误
类型不匹配

这是我得到错误信息的控制器:

@RequestMapping("/admin/fatherSearchSent")
public String fatherSearchSent(..., @Valid FatherSearch fatherSearch,...){
}
我必须允许用户决定是否在搜索表单中插入日期,因此我需要一种方法来处理用户不插入任何日期的情况


谢谢

为什么dataDiNascita不能为空?因为当我对modelAttribute进行有效验证时,我在日期字段上得到了类型不匹配错误。我编辑了我的帖子,也许现在是ClearSpring不验证空值,如果值为空且字段没有@notnull验证,Spring将不会验证字段。