Значение '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