в весеннем приложении MVC у меня есть класс сущности Вопрос
@Entity
public class Question {
@Lob
@Column(name="QUESTION_TITLE")
private String question;
...
}
Я использую Thymeleaf.для этого поля мой взгляд ниже
<input type="text" class="form-control" id="question"
th:field="*{question}" th:value="${question}" placeholder="">
мой метод сохранения контроллера -
@PostMapping("/save")
public String saveQuestion(Question question, BindingResult bindingResult){
questionService.save(question);
return "redirect:/admin/questions/all/";
}
, но когда я отправляю сообщение, у меня появляется ошибка
Failed to bind request element:
org.springframework.beans.TypeMismatchException:Failed to convert value of type 'java.lang.String' to required type com.sendit.security.model.Question';
nested exception is
org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Long] for value 'what';
nested exception is java.lang.NumberFormatException:
For input string: "what"
, когда ядобавьте атрибут @Convert (converter = QuestionConverter.class) в поле вопроса и внедрите метод QuestionConverter, как показано ниже.
@Converter
public static class QuestionConverter implements AttributeConverter<String, Integer> {
@Override
public Integer convertToDatabaseColumn(String attribute) {
return attribute.length();
}
@Override
public String convertToEntityAttribute(Integer dbData) {
return "";
}
}
Я снова получил ошибку.