Значение '0000-00-00' не может быть представлено как java.sql.Date

Я работаю над проектом, который должен извлечь данные из БД, и я использую Spring MVC для построения модели из БД для выбора данных.

Вот проблема с моимСтраница JSP:





Date to select:
Name to select:
Type to select:






 --SELECT--


  

 --SELECT--





 --SELECT--














Как видите, я пытаюсь использовать отSpring библиотека тегов.

Вопрос:

но когда этоготовит мою модель с этимконтроллер:

@Controller
public class HomeController{ 

    @Autowired
    private ControllerSupportClass controllerSupportClass; 


        @RequestMapping(value="/search", method=RequestMethod.GET)
        public String search(Model model) {
            List listOfDates = controllerSupportClass.findAllDatesForm();
            List listOfInstitutionsNames = controllerSupportClass.findAllInstitutionsForm();
            List listOfInstitutionsTypes = controllerSupportClass.findAllTypesForm();
            model.addAttribute("listOfInstitutionsTypes", listOfInstitutionsTypes);
            model.addAttribute("listOfInstitutionsNames", listOfInstitutionsNames);
            model.addAttribute("listOfDates", listOfDates);
            return "search";    
        }


        @RequestMapping(value ="/result", method=RequestMethod.GET)
        public String SecondActionPage(@RequestParam String particularDate, 
                                       @RequestParam String nameOfInstitution, 
                                       @RequestParam String typeName,
                                       Model model) throws Exception {


                if(particularDate !="" && nameOfInstitution.trim() !="" && typeName.trim()=="") {                   
                    controllerSupportClass.findWithDateAndName(nameOfInstitution, particularDate, model);                   
                } else if(particularDate.trim() !="" && nameOfInstitution.trim() =="" && typeName.trim() !="") {                    
                    controllerSupportClass.findWithAddedDateAndType(typeName, particularDate, model);                   
                } else if(particularDate.trim() !="" && nameOfInstitution.trim() =="" && typeName.trim() ==""){         
                    controllerSupportClass.findWithAddedDate(particularDate, model);    
                } else if(particularDate.trim() !="" && nameOfInstitution.trim() !="" && typeName.trim() !="") {
                    throw new Exception("Search by choose all parameters is not exceptable");   
                } else {    
                    throw new Exception("You didn't put any search parameters");    
                }           
            return "search";
        }

}

Это дает мне ошибку, как это:

ПРЕДУПРЕЖДЕНИЕ: org.springframework.web.servlet.PageNotFound - Не найдено сопоставление для HTTP-запроса с URI [/ controller /] в DispatcherServlet с именем 'appServlet» Режим гибернации: выберите отдельное созданиеda0_.DATE_ID в качестве DATE1_0_, созданиеda0_.CHILD_ADMISSION_DATE в качестве CHILD2_0_, creationda0_.CHILD_GO_SCHOOL_DATE в качестве CHILD3_0_, creationda0_.PARTICULAR_DATE в качестве PARTICULAR4_0. , SQLState: S1009 ОШИБКА: org.hibernate.util.JDBCExceptionReporter - Значение '0000-00-00' не может быть представлен как java.sql.Date 19 июня 2013 г. 3:26:53 org.apache.catalina.core.StandardWrapperValve вызывает SEVERE: Servlet.service () для сервлета [appServlet] в контексте с путем [/ controller] сгенерировано исключение [Ошибка обработки запроса; вложенным исключением является org.hibernate.exception.GenericJDBCException: не удалось выполнить запрос] с первопричиной java.sql.SQLException: Value '0000-00-00' не может быть представлен как java.sql.Date

Если вам нужен мой класс Entity этовот ям используюDate отjava.util, но я иду с@Temporal аннотация для преобразования его из SQL в единицуDate насколько я понимаю:

@Entity
@Table(name="CREATION_DATE")
public class CreationDate implements Serializable {


    private int dateId;

        @Id
        @GeneratedValue(strategy=IDENTITY)
        @Column(name="DATE_ID")
        public int getDateId() {
            return dateId;
        }

        public void setDateId(int dateId) {
            this.dateId = dateId;
        }


    private int version;

        @Version
        @Column(name="VERSION")
        public int getVersion() {
            return version;
        }

        public void setVersion(int version) {
            this.version = version;
        }


    private Date particularDate;

        @Temporal(TemporalType.DATE)
        @DateTimeFormat(pattern="yyyy-MM-dd")
        @Column(name="PARTICULAR_DATE")
        public Date getParticularDate() {
            return particularDate;
        }

        public void setParticularDate(Date particularDate) {
            this.particularDate = particularDate;
        }


    private Date childGoSchoolDate;

        @Temporal(TemporalType.DATE)
        @DateTimeFormat(pattern="yyyy-MM-dd")
        @Column(name="CHILD_GO_SCHOOL_DATE")
        public Date getChildGoSchoolDate() {
            return childGoSchoolDate;
        }

        public void setChildGoSchoolDate(Date childGoSchoolDate) {
            this.childGoSchoolDate = childGoSchoolDate;
        }


    private Date childAdmissionDate;

        @Temporal(TemporalType.DATE)
        @DateTimeFormat(pattern="yyyy-MM-dd")
        @Column(name="CHILD_ADMISSION_DATE")
        public Date getChildAdmissionDate() {
            return childAdmissionDate;
        }

        public void setChildAdmissionDate(Date childAdmissionDate) {
            this.childAdmissionDate = childAdmissionDate;
        }


}

Предполагая, что проблема с преобразованием типов данных заключается в том, что MVC используетString, но фактический тип есть.Date

Ответы на вопрос(6)

Ваш ответ на вопрос