[Не удалось преобразовать значение свойства типа 'java.lang.String' в требуемый тип 'java.sql.Time' - PullRequest
0 голосов
/ 03 мая 2018

У меня ошибка при попытке отправить форму на мой контроллер, у меня эта ошибка:

[Не удалось преобразовать значение свойства типа 'java.lang.String' в требуемый тип 'java.sql.Time' 'horaire' в поле 'heureDebut': отклоненное значение [10:00]; коды [TypeMismatch.horaire.heureDebut, typeMismatch.heureDebut, typeMismatch.java.sql.Time, typeMismatch]

Это моя сущность:

@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 +
                '}';
    }
}

Это мой метод в контроллере:

@GetMapping("/save")
public String saveHoraire(@Valid Horaire horaire) {

    horaireRepository.save(horaire);

    return "redirect:listeHoraire";

}

это мой шаблон:

<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>

1 Ответ

0 голосов
/ 03 мая 2018

Используйте java.util.Date в вашем классе сущностей, как показано ниже, и datetime в базе данных.

@Column(name = "heure_debut")
@Temporal(TemporalType.TIMESTAMP)
private Date heureDebut;

@Column(name = "heure_fin")
@Temporal(TemporalType.TIMESTAMP)
private Date heureFin;

и использовать SimpleDateFormat для преобразования строки в объект Date

String text = "25/02/1992";
Date date = new SimpleDateFormat("DD/MM/YYYY").parse(text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...