не удалось преобразовать строку в тип Long, если поле имеет значение LOB - PullRequest
0 голосов
/ 29 января 2019

в весеннем приложении 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 "";
    }
}

Я снова получил ошибку.

1 Ответ

0 голосов
/ 29 января 2019

Я нашел решение.просто изменили имя поля «вопрос» на другое имя поля (например, «заголовок»), и это работает.это было вызвано тем, что когда в представлении я хочу отправить атрибут «вопрос», он известен как объект и хеш-значение отправленного объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...