[英][Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Time'
I have a error when I try to send a form to my controller, I have this error: 尝试将表单发送到控制器时出现错误,出现以下错误:
[Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Time' 'horaire' on field 'heureDebut': rejected value [10:00];
[无法将字段'heureDebut'上的'java.lang.String'类型的属性值转换为所需类型'java.sql.Time''horaire':拒绝的值[10:00]; codes [typeMismatch.horaire.heureDebut,typeMismatch.heureDebut,typeMismatch.java.sql.Time,typeMismatch]
代码[typeMismatch.horaire.heureDebut,typeMismatch.heureDebut,typeMismatch.java.sql.Time,typeMismatch]
This is my Entity: 这是我的实体:
@Entity(name = "horaire")
public class Horaire {
@Id @GeneratedValue
@Column(name = "idhoraire")
private Integer id;
@Column(name = "heure_debut")
private Time heureDebut;
@Column(name = "heure_fin")
private Time heureFin;
public Horaire() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Time getHeureDebut() {
return heureDebut;
}
public void setHeureDebut(Time heureDebut) {
this.heureDebut = heureDebut;
}
public Time getHeureFin() {
return heureFin;
}
public void setHeureFin(Time heureFin) {
this.heureFin = heureFin;
}
@Override
public String toString() {
return "Horaire{" +
"id=" + id +
", heureDebut=" + heureDebut +
", heureFin=" + heureFin +
'}';
}
}
This is my method in the controller: 这是我在控制器中的方法:
@GetMapping("/save")
public String saveHoraire(@Valid Horaire horaire) {
horaireRepository.save(horaire);
return "redirect:listeHoraire";
}
this is my template: 这是我的模板:
<form th:action="@{save}" method="get" th:object="${horaire}">
<input type="text" th:field="*{id}">
<input type="time" th:field="*{heureDebut}">
<input type="time" th:field="*{heureFin}">
<input type="submit" value="valider"/>
</form>
Use java.util.Date in your entity class like shown below and datetime in the database. 如下所示在实体类中使用java.util.Date,在数据库中使用datetime 。
@Column(name = "heure_debut")
@Temporal(TemporalType.TIMESTAMP)
private Date heureDebut;
@Column(name = "heure_fin")
@Temporal(TemporalType.TIMESTAMP)
private Date heureFin;
and use the SimpleDateFormat to convert string to Date object 并使用SimpleDateFormat将字符串转换为Date对象
String text = "25/02/1992";
Date date = new SimpleDateFormat("DD/MM/YYYY").parse(text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.