我的 CRUD 过程中有错字。我无法在以 Oracle 11g 命名的数据库中插入日期类型。
当我尝试插入数据时,控制台上出现错误。
Field error in object 'employee' on field 'registerDate': rejected value [2019-09-11]; codes [typeMismatch.employee.registerDate,typeMismatch.registerDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [employee.registerDate,registerDate]; arguments []; default message [registerDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'registerDate'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@javax.validation.constraints.NotNull @javax.persistence.Temporal @javax.persistence.Column java.util.Date] for value '2019-09-11'; nested exception is java.lang.IllegalArgumentException]
我该如何解决?
员工论坛
<form action="#" th:action="@{/employees/save}"
th:object="${employee}" method="POST">
...
<input type="date" name="date" th:field="*{registerDate}"
class="form-control mb-4 col-4" placeholder="Register Date">
</form>
员工对象
@NotNull(message="is required")
@Temporal(TemporalType.DATE)
@Column(name="REGISTER_DATE")
private Date registerDate;
控制器类
@PostMapping("/save")
public String saveEmployee(@ModelAttribute("employee") Employee theEmployee,@RequestParam("date") String date) throws IOException, ParseException {
// Date
SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");
Date registerDate = dateformat.parse(String.valueOf(date));
System.out.println("/save | registerDate : " + registerDate);
theEmployee.setRegisterDate(registerDate);
// save the employee
employeeService.save(theEmployee);
}